cfselect绑定和jquery事件冲突

0 javascript coldfusion jquery

我使用<cfselect>的bind属性绑定加载状态列表.该绑定与另一个<cfselect>加载相关城市的绑定相关联.这两个工作正常.

现在我需要添加第三个选择列表.当第一个cfselect更改时,我想将两者的值传递cfselect给jQuery,以加载第三个列表.第三个列表是一个普通的HTML <select>.这基本上是一个旧的继承代码所以我知道两件事的混合是一个坏主意.

所以这是正在发生的事情.第一次打电话没问题.它传递正确cityid.下次我改变状态时,它的状态通过cfselect改变,但是它传递旧的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})
}); 
Run Code Online (Sandbox Code Playgroud)

我希望我提出一个明确的问题.

Ada*_*ron 5

因为你已经使用jQuery并且可以使用它,所以<cfselect>完全撕掉它并用vanilla <select>和jQuery的.ajax()方法做很多事情.这样就可以消除冲突.

你已经基本上遇到了使用ColdFusion的UI向导的根本缺陷:它们编写得很糟糕,并且根本没有与其他要求互操作.<cfselect>不能与其他JS技术一起实现.它基本上是一个进化的死胡同(死亡发生在大约十年前).

这是一些剥离的指导<cfselect>:" CFSELECT-CHAINED "