使用ESC键关闭对话框后,Dojo ValidationTextbox错误工具提示仍保留在页面上

使用ESC键关闭对话框后,Dojo ValidationTextbox错误工具提示仍保留在页面上,dojo,Dojo,我使用的是Dojo1.5,主题是Claro。 我有一个dojo对话框,其中包含一个dojo表单、一个ValidationTextbox和一个submit按钮。 如果文本框有任何类型的错误,则在其旁边会显示显示消息的工具提示。 现在,如果显示错误工具提示,当我按ESC键时,对话框关闭,但工具提示仍保留在第页 下面是我用于addNewUser.html对话框的代码: <form id="formAddUser" dojoType="dijit.form.Form"> <in

我使用的是Dojo1.5,主题是Claro。 我有一个dojo对话框,其中包含一个dojo表单、一个ValidationTextbox和一个submit按钮。 如果文本框有任何类型的错误,则在其旁边会显示显示消息的工具提示。 现在,如果显示错误工具提示,当我按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>
你知道这个问题吗


提前感谢。

通常情况下,焦点移动到另一个节点(即在模糊事件中触发)后,工具提示将消失。在您的情况下,我认为这是因为模糊事件没有被触发,因为您使用了ESC键来关闭对话框

要解决此问题,可以手动调用dijit.form.ValidationTextBox的displayMessage来隐藏工具提示

在你的代码中

 dlg.connect(dlg, "onHide", function(){ 
        dijit.byId('txtUserName').displayMessage(''); //Add this line to hide the tooltip
        dlg.destroyRecursive();
 });
 dlg.connect(dlg, "onHide", function(){ 
        dijit.byId('txtUserName').displayMessage(''); //Add this line to hide the tooltip
        dlg.destroyRecursive();
 });