jquery代码块只能成功一次
我写了下面的jquery代码块。当我的网站上的邮政编码发生变化时,此代码就会运行,但仅在邮政编码第一次更改时才能正常运行。我在代码中放置了三个警报。当代码块已经运行一次,我没有达到第三次警报。难道我做错了什么?jquery代码块只能成功一次
$('#postcodefield').change(function(){
var newPC = $(this).val()
var areaData = null;
var MAPITURL = "http://mapit.mysociety.org/postcode/";
var postcodeUrl = MAPITURL + newPC;
$('#gpQueryTerm').val(newPC);
$.ajax({
type : 'GET',
async: false,
url : postcodeUrl,
dataType : 'json',
error: function(){
$('input[name=town]').val(6);
},
success: function(data){
alert('1');
areaData = data;
alert('2');
// Extract the ward number
ward = areaData.shortcuts.ward;
wardCode = areaData.areas[ward].codes.ons;
// now we have the ons, get the townsend value from the db
alert('3');
$.post("/tasks/getTownsend.cfm", {
code: wardCode
}, function(data){
$('input[name=town]').val(data);
});
}
});
});
在此先感谢
詹姆斯
如果第三警报从未被调用,则必须存在一个错误:
ward = areaData.shortcuts.ward;
wardCode = areaData.areas[ward].codes.ons;
鉴于这就是问题的数据我可以给出最详细的答案。我建议你看一下JSON响应,并确保它是你期望的结果。
感谢您的帮助。我想我已经知道了。对于secound邮编,我使用的是'areaData.shortcuts.ward'并没有被重新定义为字符串,而是作为一个对象。有没有办法测试一个变量是否是一个字符串? – 2012-03-01 17:50:14
@JamesPrivett是的,你可以做'if(obj typeof'string')' – Jivings 2012-03-01 17:58:40
是否有任何错误? – Jivings 2012-03-01 16:27:22
不,我正在查看控制台并且没有错误? – 2012-03-01 16:31:27
您是否尝试过使用像Firebug或Fiddler这样的调试工具来查看发送的请求和回复? – 2012-03-01 16:34:19