Dojo ValidationTextArea小部件在无效时如何突出显示?

时间:2012-04-25 11:42:37

标签: javascript validation dojo widget

我正在尝试创建一个继承自ValidationTextBox的自定义Dojo ValidationIdBox小部件。我的自定义小部件将添加与后端服务器的异步重复ID检查。

我对dijit.form.ValidationTextBox进行了细分,并修改了两个方法:isValid()和validate()。但是,我无法使验证完全正常工作。小部件捕获并突出显示缺少必需输入等问题。它甚至在存在重复ID(工具提示出现)时捕获,但无法按预期突出显示该字段。

我试图用下面的简化代码片段来解决我的问题。它主要是原始的Dojo代码,稍作修改。我的一般策略是让小部件验证为常规ValidationTextBox,然后测试重复的ID。我将isValid()修改为两种模式:普通验证和带唯一性检查的验证。目前,唯一性测试总是失败。

以类似的方式,我修改了validate()来做正常的事情,然后在正常验证成功但是使用唯一性测试的验证失败时进行一些额外的处理。我试图镜像与ValidationTextBox处于error状态时相同的逻辑,但是没有镜像相同的效果:出现“ID not available”工具提示,但不会出现带有感叹号的红色轮廓。 / p>

我检查了ValidationTextBox's code,但我无法弄清楚这种特殊样式是如何触发的...... 有人可以解释ValidationTextArea是如何工作的吗?具体来说我不太确定如何{{1使用{},this._maskValidSubsetErroraria-invalid

(有时,我希望工具提示出现,但不是红色样式。喜欢在AJAX重复ID检查请求处理时显示。)

this.state

1 个答案:

答案 0 :(得分:3)

可能会错过显而易见的内容,隐藏在内联和& &|的云中;)))))

模糊/按键机制中的一点是工具提示只会在当前显示的框中可见,因此_maskValid

你试过this.set("state", this.isUnique() ? "" : "Error"); ??

窗口小部件是有状态的,而.set可能只是做技巧,触发事件或发布主题