Как правильно возвращать и отображать данные JSON с помощью getJSON?
file "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. Это, наверное, очень просто, но я не вижу этого...
1 ответ
Решение
Попробуй это:
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.zip11111
или же data.zip99999
работает, тогда как data.zipcode
нет, так как нет ключа с именем zipcode
,