我有一个 dojo 1.5 的表单设置。我正在使用 dijit.form.ComboBox 和 dijit.form.TextBox
组合框具有“汽车”、“自行车”、“摩托车”等值,文本框是组合框的形容词。
因此,组合框中的内容并不重要,但如果组合框确实有值,则必须在文本框中填充一些内容。或者,如果 ComboBox 中没有任何内容,则 TextBox 中也不能有任何内容,这样就可以了。事实上,如果组合框中没有任何内容,那么文本框中就不能有任何内容。
在常规编码中,我只会在文本框中使用 onBlur 事件来转到检查 ComboBox 是否有值的函数。我在道场中看到这不起作用...代码示例如下...
Vehicle:
<input dojoType="dijit.form.ComboBox"
store="xvarStore"
value=""
searchAttr="name"
name="vehicle_1"
id="vehicle_1"
/>
Descriptor:
<input type="text"
dojoType="dijit.form.TextBox"
value=""
class=lighttext
style="width:350px;height:19px"
id="filter_value_1"
name="filter_value_1"
/>
我最初的尝试是在描述符的 标记中添加 onBlur,但发现这不起作用。
Dojo 如何处理这个问题?是通过 dojo.connect 参数吗?尽管在上面的示例中,组合框的 id 为“vehicle_1”并且文本框的 id 为“filter_value_1”,但可以有多个按顺序向上编号的组合框和文本框。 (车辆_2、车辆_3 等)
任何建议或资源链接将不胜感激。
要添加 onBlur 事件,您应该使用 dojo.connect():
dojo.connect(dojo.byId("vehicle_1"), "onBlur", function() { /* do something */ });
如果您需要将其连接到多个输入,请考虑为需要模糊的输入添加自定义类,并使用 dojo.query 连接到所有输入:
Vehicle:
<input dojoType="dijit.form.ComboBox"
store="xvarStore"
class="blurEvent"
value=""
searchAttr="name"
name="vehicle_1"
id="vehicle_1"
/>
dojo.query(".blurEvent").forEach(function(node, index, arr) {
dojo.connect(node, "onBlur", function() { /* do something */ });
});
在传递给 dojo.connect 的函数中,您可以添加一些代码来去掉末尾的数字,并使用它来引用每个 filter_value_* 输入进行验证。
dojo.connect() http://dojotoolkit.org/reference-guide/dojo/connect.html
组合框文档 http://dojotoolkit.org/api/1.7/dijit._Widget.onBlur
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)