2013-02-23 54 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); 
      } 
     }); 
    } 
}