cfselect绑定和jquery事件冲突

时间:2014-12-18 10:36:50

标签: javascript jquery coldfusion

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

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

所以这是正在发生的事情。第一次打电话没问题。它传递了正确的cityid。下次我改变状态时,它的状态通过cfselect改变,但是它传递旧的cityid而不是新的cfselect。这会导致第三个下拉列表出现问题,但不会加载结果。

所以基本上结构是这样的:

  • 首先cfselect绑定加载状态
  • 第二个stateid绑定基于传递的select
  • 加载城市
  • 第三个$(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}) }); 获取前两个cfselect的州和城市值以加载邮政编码

现在是jQuery代码:

{{1}}

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

1 个答案:

答案 0 :(得分:5)

由于你已经使用jQuery并且可以使用它,所以完全撕掉<cfselect>并使用vanilla <select>和jQuery的.ajax()方法完成所有操作。这样就可以消除冲突。

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

以下是解除<cfselect>出去的一些指导:“CFSELECT-CHAINED