首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定的cfselect‘onClick导致问题

绑定的cfselect‘onClick导致问题
EN

Stack Overflow用户
提问于 2011-05-06 19:55:28
回答 1查看 550关注 0票数 0

我有一个cfselect,它工作得很好。我有一个onclick事件来刷新到cfselect的绑定,因为查询内容经常变化,我想让用户拥有更新的list.Now,我想添加"Select any Bus“作为第一个选项,但我不能这样做。

在从cfc返回结果之前,我尝试在查询结果中添加一行。但我不能选择除'Select any Bus‘之外的任何其他值。

我的cfselect代码是:

代码语言:javascript
复制
<cfinvoke component="getCalculatorData" method="getAllBus"  argumentcollection="#houseArgs#" returnvariable="qry_busList">
<cfform style="align:centre" id="frm_drpDwnBus" name="frm_drpDwnBus"> 
<cfinput name="hdnrr" value="#rrSbstring#" type="hidden">
<cfselect name="dpDwnBs" bindOnLoad="true" 
  bind="cfc:getCalculatorData.getAllBus(hdnrr.value)" 
  value="busType_id_pk" 
  display="busType_name" >
  onclick="javascript:refresh(hdnrr.value)"
  <option value="0" on>Select a Bus</option>
</cfselect> 
</cfform> 

我的cfc: SELECT busType_id_pk,busType_name FROM tbl_bustype WHERE busType_railroad_letter=

javascript:

代码语言:javascript
复制
function refresh(s)
 {
  ColdFusion.Bind.assignValue('dpDwnBs','value', dataCalcu.getAllBus(s))
 }

一旦我删除了onclick事件,一切都会正常工作。请帮帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-06 23:37:35

在最初误解了这个问题之后,让我们进行另一个挥杆。

选择框上的固定onclick绑定事件永远不会起作用。要像大多数人一样使用选择框,请单击它两次:一次下拉它,一次选择您的项目。但是,在第一次单击时,将重置该项目。即使框保持打开状态(我怀疑这可能与浏览器相关,但并未真正测试),第二次单击也会将其重置,这意味着您将丢失选择,因为选定的项将被销毁并重新创建为新的DOM节点。

我能想到三个解决方案。

首先,您可以向表单添加一个刷新按钮,然后刷新选择框中的值。

其次,您可以使用jQuery或类似的方法绑定事件,然后单击刷新选项列表,然后删除onclick事件绑定。这意味着用户只能刷新选项一次,但(希望)这应该足够了。如果页面ui被多次使用(例如,通过AJAX ),您可以在提交时重新绑定onclick刷新事件。

最后,将表单项显示为一个不可编辑的文本字段(onfocus="blur();“IIRC)。添加一个按钮,或者更改焦点事件以启动一个模式窗口,该窗口通过AJAX或类似的方式从你的CFC中拉出选项并显示它们,这样每当他们选择编辑这个项目时,他们就会得到一组新的选择。

所有这些都有一个缺点,就是不能保留以前的选择,因为绑定刷新会销毁所有选项odes并构建一个新的选项列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5911034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档