我们编写了一个通用的 jQuery 动作,它绑定到一个选定的国家列表。绑定到国家选择;当它被改变时,调用服务器来获取状态......
$('#' + countryElementID).change(function () {
var countryID = $('#' + countryElementID).val();
$.ajax({
type: 'POST',
url: '/App/GetStatesByCountry',
data: {
id: countryID
},
dataType: 'json',
success: function (result) {
// build HTML replace via .html
},
failure: function (result) {
// ...
}
});
});
这是触发此的代码...
var populateCompanyInfo = function (resultData) {
var populateList = {
CompanyName: 'input',
Address1: 'input',
Address2: 'input',
City: 'input',
Zip: 'input',
Email: 'input',
Phone: 'input',
Fax: 'input',
CountryID: 'select',
StateID: 'select',
Active: 'toggle'
}
$.each(populateList, function (name, value) {
var a = eval('resultData.' + name);
var sectionID = 'RealtyCompany';
if (a != null || a != '') {
if (value == 'input') {
// ...
}
if (value == 'select') {
var a = eval('resultData.' + name);
$('#select' + sectionID + name).val(a);
$('#select' + sectionID + name).trigger('change');
}
if (value == 'toggle') {
// ...
}
}
});
我遇到的问题是它在填充状态之前选择了 StateID(由 Country 下拉列表的更改触发)。
是否有一个变量可以在 Country 下拉列表的通用操作中传递,它基本上会等到变量传递?我试图想办法在 jQuery 中合并一个延迟操作,但我很难找到一种方法来做到这一点。