如何隐藏dojo验证错误工具提示?

时间:2014-03-13 14:40:58

标签: dojo tooltip hide

我正在使用dojo来验证输入字段,如果有错误(例如:required字段),它会出现在dojo工具提示中。但是,我想在自定义div而不是工具提示中显示错误。

所以,我想知道是否有办法隐藏/禁用验证错误出现在工具提示中?如果是这样,我可以捕获隐藏工具提示中显示的错误消息,并在自定义div中显示结果,这将与整个应用程序中的错误样式一致。

请指教。感谢。

2 个答案:

答案 0 :(得分:4)

我建议使用标准的Dojo验证机制,这与vivek_nk的建议相反。这种机制在大多数情况下都很有效,并且涵盖了大多数情况(必需,正则表达式,数字,日期等)。

解决您的问题:您可以否决" dispayMessage" ValidationTextBox的功能(例如)。

        displayMessage: function(/*String*/ message){
        // summary:
        //      Overridable method to display validation errors/hints.
        //      By default uses a tooltip.
        // tags:
        //      extension
        if(message && this.focused){
            Tooltip.show(message, this.domNode, this.tooltipPosition, !this.isLeftToRight());
        }else{
            Tooltip.hide(this.domNode);
        }
    }

只需创建自己的ValidationTextBox小部件,扩展dijit / form / ValidationTextBox,并实现自己的" displayMessage"功能。

答案 1 :(得分:-1)

此方案的简单解决方案是不添加" required"完全符合这些领域的条件。而是添加一个单独的事件处理程序或函数来检查此验证。

例如:为onBlur事件添加一个函数。检查该字段是否为强制字段。如果是这样,请按预期在自定义div中显示消息。

<input data-dojo-type="dijit/form/TextBox" 
   id="sampleText" type="text" mandatory="true" onBlur="checkMandatory(this)"/>


function checkMandatory(field) {
    if(field.mandatory=='true' && field.value=="") {
        alert('value required'); // replace this code with my showing msg in div
    } else {
        field.domNode.blur();
    }
}

上面的代码片段不使用Dojo进行验证,而是使用手动。 Dojo实际上只是通过添加属性&#34; required&#34;来帮助缓解这个问题。如果这不是必需的,那么只需忽略Dojos帮助这个案例并继续本地化。 因此,对于所有字段,只需添加属性 - &#34;强制性&#34; &安培; &#34; onBlur&#34;,并为所有这些字段添加上面给定的onBlur操作函数。