根据邮政编码返回城市和州

时间:2013-02-23 05:23:22

标签: javascript lookup-tables

我希望“city”和“state”根据用户在文本框中输入的“邮政编码”显示在屏幕上。我有一个zip列,城市和州的3列文本文件。构建javascript函数的最有效方法是什么?

3 个答案:

答案 0 :(得分:0)

将文本文件预处理为表单

的JSON对象
{
    "10461": { City: "Bronx", State: "NY" }
    ... 
}

如果您真的很懒,可以使用d3.nest直接从文本文件中执行此操作。但是,对于您的客户来说,如果您只执行一次并且只是存储JSON而不是让每个客户端加载文本文件并重复执行它,那将会很棒。

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

答案 1 :(得分:0)

Google是你的朋友: Css-tricks did a tutorial for exactly what you're asking(+几个选项)

答案 2 :(得分: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);
            }
        });
    }
}