我正在尝试更改Country事件时(ddlcountry)选择值,但更改事件会持续触发。
$(document).ready(function () {
$('#ddlCountry').on('change', function () {
if ($('#ddlCountry option:selected').index() > 0) {
getStateDetails();
}
});
$('#ddlState').on('change', function () {
if ($('#ddlState option:selected').index() > 0) {
getCityDetails();
}
});
});
$('#ddlCountry').val(data.CountryID).trigger('change');
$('#ddlState').val(data.StateID).trigger('change');
如何阻止这种情况。
答案 0 :(得分:1)
我认为您将在getStateDetails
和getCityDetails
函数中获取数据变量的值,因此以下两行每次都会获得新值:
$('#ddlCountry').val(data.CountryID).trigger('change');
$('#ddlState').val(data.StateID).trigger('change');
然后他们会触发change
事件。再次,当您真正从这些下拉列表中选择任何值时,jquery更改事件会触发并调用上述函数,然后循环继续。
要传递所选下拉选项的值,您可以这样编码:
$('#ddlCountry').on('change', function () {
if ($('#ddlCountry option:selected').index() > 0) {
getStateDetails($(this).val());
}
});
$('#ddlState').on('change', function () {
if ($('#ddlState option:selected').index() > 0) {
getCityDetails($(this).val());
}
});
将它们的值作为参数传递给函数。
答案 1 :(得分:0)
通常在连续触发事件时我们可以使用以下来避免它:
希望这有帮助!