我无法让ValidationTextBox
失去焦点,我也看不到方法blur()
。
如何让它失去焦点?
答案 0 :(得分:5)
blur()方法适用于dom节点。小部件通常由html模板支持。如果你看一下dijit / form / templates / ValidationTextBox.html,你会发现有一个dom节点有一个包含“focusNode”的dojoAttachPoint。以下是dojo 1.7上模板的代码,供参考:
<div class="dijit dijitReset dijitInlineTable dijitLeft"
id="widget_${id}" role="presentation"
><div class='dijitReset dijitValidationContainer'
><input class="dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value="Χ " type="text" tabIndex="-1" readonly="readonly" role="presentation"
/></div
><div class="dijitReset dijitInputField dijitInputContainer"
><input class="dijitReset dijitInputInner" dojoAttachPoint='textbox,focusNode' autocomplete="off"
${!nameAttrSetting} type='${type}'
/></div
您可以通过以下操作直接引用模板中引用的节点作为“focusNode”来实现模糊触发:
dijit.byId("myValidationTextBoxId").focusNode.blur();
答案 1 :(得分:0)
您必须覆盖ValidationtextBox.js类的功能。默认情况下,它总是在onkeypress事件上调用。