[英]cfselect bind and jquery on events clashing
我正在使用<cfselect>
的bind屬性來綁定加載狀態列表。 該綁定與另一個加載關聯城市的<cfselect>
關聯。 那兩個工作正常。
現在,我需要添加第三個選擇列表。 當第一個cfselect
更改時,我想將兩個cfselect
的值傳遞給jQuery,以加載第三個列表。 第三個列表是純HTML <select>
。 這基本上是一個舊的繼承代碼,所以我知道將兩者混合是一個壞主意。
所以這就是正在發生的事情。 最初的通話效果很好。 它通過了正確的cityid
。 下次更改狀態時,其狀態通過cfselect更改,但它傳遞的是舊的cityid
而不是新的cityid
。 這為第三個下拉菜單創建了一個問題,該下拉菜單不會加載結果。
所以基本上結構是這樣的:
cfselect
綁定加載狀態 cfselect
綁定根據傳遞的stateid
加載城市 select
從前兩個cfselect獲取州和城市值以加載郵政編碼 現在,jQuery代碼:
$(document).on('change',function() {
var a = $("#cfselect1").val();
/*
The next line seems to be a problem area. It always fetches
the old cityid. Maybe due to the ext js bind is loading
later than jquery being first
*/
var b = $("#cfselect2").val();
$ajax({ajax code here})
});
我希望我已經闡明了一個問題。
因為您已經對jQuery很熟悉並且可以使用它,所以請完全撕掉<cfselect>
並使用普通的<select>
和jQuery的.ajax()
方法完成全部工作。 這樣您就可以消除沖突。
您基本上已經遇到了使用ColdFusion的UI向導的基本缺陷:它們編寫得很差,並且根本無法與其他需求互操作。 <cfselect>
並非旨在與其他JS技術一起實現。 從根本上講,這是一個進化的死胡同(死胡同發生在大約十年前)。
這里是一些刪除<cfselect>
指導:“ CFSELECT-CHAINED ”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.