我正在使用 Dojo 1.5,主题Claro。 我有一个dojo对话框,其中包含一个dojo表单,一个ValidationTextbox和一个提交按钮。 如果文本框有任何类型的错误,则会在其旁边显示显示消息的工具提示。 现在,如果显示错误工具提示,当我按下ESC键时,对话框将关闭,但工具提示仍保留在页面上。
以下是我用于addNewUser.html对话框的代码:
<form id="formAddUser" dojoType="dijit.form.Form">
<input type="text" id="txtUserName" style="width: 200px"
dojoType="dijit.form.ValidationTextBox"
required="true"
regExp="[a-zA-Z0-9 \._-]{3,15}"
invalidMessage="Error message"
missingMessage="User Name is required."
trim="true"></input>
<div dojoType="dijit.form.Button" onClick="dijit.byId('dlgAddUser').hide();">Cancel</div>
</form>
以下是我用来打开对话框的代码:
function ShowAddUserDialog()
{
dojo.require("dijit.Dialog");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.form.Form");
dojo.require("dijit.form.Button");
var dlg = dijit.byId("dlgAddUser");
if (dlg == null)
dlg = new dijit.Dialog({
id : "dlgAddUser",
autofocus: false
});
dlg.connect(dlg, "onHide", function(){
dlg.destroyRecursive();
});
dlg.set("href", "addNewUser.html");
dlg.set("style", "width: 370px;");
dlg.set("title", "Add New User");
dlg.connect(dlg, "onLoad", function(){
dijit.byId("txtUserName").focus();
});
dlg.show();
}
对这个问题有任何想法吗?
提前致谢。
答案 0 :(得分:0)
通常,在将焦点移动到另一个节点后工具提示消失,即在blur
事件上触发。在你的情况下,我认为这是因为你没有触发blur
事件,因为你使用ESC键来关闭对话框。
要解决此问题,您可以手动调用displayMessage
的{{1}}来隐藏工具提示。
在你的代码中
dijit.form.ValidationTextBox