我有一個視圖上的地址塊,可以交換一些數據,如果用戶點擊複選框。 javascript函數我看起來像這樣:在jQuery中,如何確保在設置元素值時觸發onchange事件?
<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」,則正確的值將填入州列表中)。
問題是,當UseAccountAddress複選框被單擊並且國家的值被更改時,狀態列表不會被更新。
看來,線....
$("#Country").val($("#PrimaryCountryId").val());
...不會導致onchange事件火災。
是否有一條線我可以在JavaScript中添加以激發國家的onchange事件,以便狀態列表正確填充?
給這個一個答案,因爲.change()在結束了一個很好的接觸。使用這個第一個IF塊。 – 2009-12-29 16:58:50