【发布时间】:2012-02-16 19:22:13
【问题描述】:
我正在努力解决我认为很简单的事情。我知道我以前在没有 JQuery 的普通旧 javascript 中也遇到过同样的问题。我尝试做的是:
//When the postal code blurs, lookup the city, country, province
$('#codePostal').blur(function(){
$.get('/fr/radio-telethon/ajax_code_postal.php', {code_postal: $('#codePostal').val()}, function(data){
if(data.code_postal.toLowerCase() == $('#codePostal').val().toLowerCase()){
$('#ville').val(data.ville);
$('#pays').val(data.pays);
$('#pays').trigger('change');
$('#province').val(data.province);
$('#province').trigger('change');
}
});
});
这基本上调用了一个邮政编码查找脚本并返回一个包含数据的对象。数据本身是正确的,我可以提醒它,它显示正常。问题是#pays(英语中的国家)上的更改触发器重新加载了#province(州)内的信息,并且似乎 DOM 正在苦苦挣扎并且没有加载信息。
如果我在国家的触发器和省份的 val 之间发出警报,我可以正确设置省份。我用来将省份添加到省份框的方法如下:
//Empty the provinces
$('#province').empty();
//Get the new data
$.get('/include/radio-telethon/formulaire-ajax.php', {pays: code}, function(data){
//Loop the items
for(i in data.options){
$('#province').append('<option value="'+data.options[i].value+'">'+data.options[i].label+'</option>');
}
//Setup the label
$('#labelProvince').html(data.label);
});
所以我的猜测是 APPEND 搞砸了一切并使整个 DOM 徘徊,这就是为什么我似乎不能做 $('#province').val(data.province);
是我吗?或者有没有我似乎找不到的魔术......
【问题讨论】:
-
哦,我也试过 $('#province').ready(function(){ $(this).val(data.province); });
标签: jquery