javascript - cfselect 绑定(bind)和 jquery 事件冲突

标签 javascript jquery coldfusion

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

现在我需要添加第三个选择列表。当第一个cfselect改变了,我想传递cfselect两者的值到 jQuery,加载第三个列表。第三个列表是一个纯 html <select> 。这基本上是一个旧的继承代码,所以我知道混合两者是一个坏主意。

所以这就是正在发生的事情。第一次通话进展顺利。它通过了正确的cityid 。下次我更改状态时,它的状态通过 cfselect 更改,但它传递了旧的 cityid而不是新的。这会给第三个下拉列表带来问题,它不会加载结果。

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

  • 第一cfselect绑定(bind)加载状态
  • 第二个cfselect绑定(bind)根据 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>完全摆脱并用 Vanilla 做所有事情<select>和 jQuery 的 .ajax()方法。这样就可以消除冲突。

您基本上遇到了使用 ColdFusion 的 UI 向导的基本缺陷:它们编写得很差,并且根本无法与其他需求很好地互操作。 <cfselect>并非旨在与其他 JS 技术结合实现。这基本上是一个进化的死胡同(这个死胡同大约发生在十年前)。

这里有一些关于删除<cfselect>的指导输出:“CFSELECT-CHAINED

关于javascript - cfselect 绑定(bind)和 jquery 事件冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27544538/

相关文章:

javascript - 如果宽度较大,则更改背景颜色

android - Jquery mobile 中的背景图片

javascript - Firefox 和 Malsup 提交表单时出现未定义错误

coldfusion - CFDocument 仍然会切断某些页面上的文本顶部

javascript - 如何使连续动画附加到悬停按钮内的 svg 平滑?

javascript - 逐步更改文本大小和颜色

javascript - Jquery Ajax beforeSend 加载动画

php - Datepicker根据服务器日期/时间获取日期

inheritance - 是否可以通过扩展组件来查看特定于功能的变量?

java - ColdFusion 没有捕捉到 NoClassDefFoundError