我在视图上有一个地址块,如果用户点击一个复选框,它可以交换一些数据。我对此的javascript函数如下:
<script type="text/javascript">
$().ready(function() {
$("#UseAccountAddress").change(function() {
if ($(this).attr("checked")) {
$("#Street1").val($("#PrimaryAddressLine1").val());
$("#City").val($("#PrimaryCity").val());
$("#Country").val($("#PrimaryCountryId").val());
$("#State").val($("#PrimaryStateId").val());
$("#PostalCode").val($("#PrimaryZip").val());
}
else {
$("#Street1, #City, #Country, #State, #PostalCode").val('');
}
});
});
</script>
在大多数情况下,这非常有效。
但是,“国家”和“州”元素是下拉列表,其中国家从国家的价值级联(即,从国家/地区列表中选择“美国”将填充有50多个州和地区的州,同时选择“加拿大” “会给你一个不同的名单)。这个级联列表可以自行运行(如果我从国家/地区列表中手动选择“USA”或“Canada”,则正确的值会填充States列表。)
问题是,当单击UseAccountAddress复选框并更改Country的值时,状态列表不会更新。
看来这行......
$("#Country").val($("#PrimaryCountryId").val());
...不会导致onchange事件触发。
我可以在javascript中添加一行来触发国家/地区的onchange事件,以便正确填充状态列表吗?
答案 0 :(得分:3)
您可以直接致电change()来触发事件:
$("#Country").val($("#PrimaryCountryId").val()).change()
答案 1 :(得分:2)
$("#Country").trigger("change");
我认为这只适用于通过jQuery绑定的事件。