2013-02-23 29 views
1
返回城市和州

根据用户输入到文本框中的“邮政编码”,我想“城市”和“州”出现在屏幕上。我有一个zip,城市和州的3列文本文件。什么是最有效的方式来构建JavaScript函数来做到这一点?根据邮编

+0

是任何位置加载的数据,或者你也需要的答案以某种方式从文本文件中获取数据?数据格式如何?逗号分隔?分页?管道输送? – 2013-02-23 05:25:47

+0

对于初学者,请确保该文件在客户端上,这样您就不必再花费昂贵的Ajax请求来检查文件 – 2013-02-23 05:26:34

+0

告诉我们您到目前为止所尝试的内容 – Josh 2013-02-23 05:27:12

回答

0

预处理的文本文件转换成表格

{ 
    "10461": { City: "Bronx", State: "NY" } 
    ... 
} 

如果你真懒,你可以使用d3.nest直接从文本文件做到这一点的JSON对象。然而,如果你做了一次并且只是存储了JSON,而不是让每个客户端加载文本文件并重复执行,那对你的客户来说会很好。

一旦你有了它,很容易......只需读取JSON对象,并使用邮政编码索引它,并获取城市/州。

0

1)您需要定义一个服务器功能,将返回基于邮政编码在JSON的城市和国家。 2)订阅在输入字段上更改,键入和输入事件。 3)定义一个JavaScript函数,它将使用AJAX调用服务器函数。在成功功能上,您使用响应设置字段。

我粘贴下面的客户端代码:

$("#txtZipCode").bind("change keyup input", function (e) { 
     var field = $(this); 
     if (field.val().length === 5) { 
      showLocation(field.val()); 
     } 
     else 
      showLocation(""); 
    }); 

function showLocation(zipCodeValue) { 
    var txtCity = $("#city"); 
    var txtState = $("#state"); 
    if (zipCodeValue.toString().length != 5) { 
     txtCity.val(""); 
     txtState.val(""); 
    } 
    else { 
     $.ajax({ 
      dataType: "json", 
      url: "Location/GetZipCode", 
      data: 
       { 
        zipCodeNumber: zipCodeValue 
       }, 
      success: function (data) { 
        txtCity.val(data.City); 
        txtState.val(data.State); 
      } 
     }); 
    } 
}