我使用<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})
}); 我希望我说清楚了一个问题。
发布于 2014-12-18 11:48:13
由于您已经熟悉了jQuery,并且可以使用它,因此可以完全删除<cfselect>,并使用普通的<select>和jQuery的.ajax()方法完成全部工作。这样你就可以消除冲突了。
您基本上遇到了使用ColdFusion的UI向导的基本缺陷:它们编写得很糟糕,并且与其他需求完全不兼容。<cfselect>不适合与其他JS技术一起实现。它基本上是一个进化的死胡同(死胡同发生在大约十年前)。
下面是一些关于如何提取<cfselect>的指导:"碳纤维链式“
https://stackoverflow.com/questions/27544538
复制相似问题