我需要将一个选择的多选项添加到另一个cfselect通过Bind属性驱动的cfselect。
问题似乎是当Chosen(和页面的其余部分)加载时,它没有cfselect的选项,并且在cfselect bind之后发出一些AJAX请求(为cfselect提供一组新的数据) ,选择的显示不会相应更新。
以下是我的cfselects:
<div class="rowalt">
<p class="_20NP"align="right"><strong>Event:</strong> </p>
<p class="_70NP" align="left">
<cfselect class="chzn-done" name="EH_ID" id="EH_ID" bind="cfc:EventQuickAdd.GetEvent2({EM_ID},{EC_ID})" display="NAME" value="EH_ID" data-placeholder="Choose an Event" required="yes" selected="#eh_id#" />
</p>
</div>
<div class="rowalt">
<p class="_20NP"align="right"><strong>Event Detail:</strong> </p>
<p class="_70NP" align="left">
<cfselect name="ED_ID" id="ED_ID" bind="cfc:EventQuickAdd.GetEventDetail2({EM_ID},{EC_ID},{EH_ID})" display="NAME" value="ED_ID" data-placeholder="Choose an Event" multiple selected="#ed_id#" />
</p>
</div>
我已经能够使用$('#ED_ID').trigger("liszt:updated")
(使用旧版本的Chosen插件)来更新所选内容。如果我在控制台中运行此代码,则选择的显示会更新,并加载所有当前选项数据。但是,我无法弄清楚如何在正确的时间运行此代码。
如果我在$('#EH_ID').change()
上运行触发器,触发器会在Coldfusion有机会发出AJAX请求之前运行,并返回并选择新数据。
有没有办法在Coldfusion AJAX请求中将async选项设置为false,以便它将检索信息然后更新选择?是否有另一个事件处理程序只有在AJAX请求成功后才会触发?