2013-04-24 100 views
2

文件 “zip.json”: { “zip11111”: “City1”, “zip99999”: “城2” }如何正确返回并显示json数据和getJSON?

的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。这也可能是很简单的,但我不能看到它... ...

+0

只需使用'console.log(data)'查看返回的具体内容,然后根据该对象进行编写 – SpYk3HH 2013-04-24 20:35:37

+0

我会添加括号。同样谢谢,虽然! – user2317194 2013-04-24 20:52:30

回答

3

试试这个:

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

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

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

这样呢,因为JSON对象你只有两个键zip11111 & zip99999。所以,data.zip11111data.zip99999的作品,而data.zipcode没有,因为没有名称zipcode的关键。

+0

作品!我理解这个解释。非常感谢你! – user2317194 2013-04-24 20:47:22

+0

很高兴帮助! – 2013-04-24 20:48:57

+1

的确如此!你的回答速度也让我印象深刻。 – user2317194 2013-04-24 20:49:58