2

文件“zip.json”:{“zip11111”:“City1”,“zip99999”:“City2”}

的JavaScript:

jQuery(document).ready(function() {
$("#textbox1zip").change(function() {
    $.getJSON('zip.json', function(data) {

    /* each of the following code blocks don't work when exchanged for each other:

    1 zipcode = "zip" + $("#textbox1zip").val();
    * $('#textbox2city').val( data.zipcode ); -----> call silently dropped

    2 zipcode = 'zip99999';
    * $('#textbox2city').val( data.zipcode ); -----> call silently dropped

    3 zipcode = "zip" + $("#textbox1zip").val();
    * alert( data.zipcode ); -----> returns 'undefined'
    */

    /* but each of these blocks here works:
    4 $('#textbox2city').val( data.zip99999 ); ------> ok

    5 alert( data.zip99999 ); -----> ok

    6 zipcode = 'zip99999';
    * $('#textbox2city').val( zipcode ); ------> ok

    7 zipcode = "zip" + $("#textbox1zip").val();
    * $('#textbox2city').val( zipcode ); ------> ok
    */
    });
});
});

我希望从 textbox1zip 中获取的值将适当的值从“zip.json”返回到 textbox2city。我想使用getJSON。这可能很简单,但我看不到它......

4

1 回答 1

3

尝试这个:

var zipcode = 'zip99999';   // or 'zip11111'
$('#textbox2city').val( data[zipcode] );

var zipcode = "zip" + $("#textbox1zip").val();
$('#textbox2city').val( data[zipcode] );

现在,这alert( data.zipcode ); -----> returns 'undefined'

发生这种情况是因为您只有两个键zip11111&的 json 对象zip99999。所以,data.zip11111ordata.zip99999有效,而data.zipcode没有,因为没有带有 name 的键zipcode

于 2013-04-24T20:35:53.993 回答