覆盖dijit验证器函数并使用regExp属性

时间:2009-12-01 23:40:32

标签: dojo validation dijit.form

我是dojo的新手,可以在以下2个字段验证示例中使用一些帮助。

在下面的dijit.form.ValidationTextBox字段示例中,指定validator属性似乎会覆盖regExp的使用。 (即该字段不再遵守regExp规则)。如何让它做到这两点?

<input dojoType="dijit.form.ValidationTextBox"
type="password"
name="password2"
id="password2"
maxLength="50"
trim="true"
regExp="[\w]+"
required="true"
validator="return this.value == dijit.byId('password').value"
invalidMessage="Confirmation password must match password" />

我有另一个类似的例子,其中一个字段取决于另一个字段的值,但我没有正确的语法。

<input dojoType="dijit.form.ValidationTextBox" type="text"
name="homePhone"
id="homePhone"
style="width:20%"
maxLength="10"
trim="true"
required="false"
regExp="[\d]{10}"
validator="return (dijit.byId('preferredContactMethod').value == "home") && (this.value != null)"
invalidMessage="Home phone required (ie. 9198887777)"
/>

1 个答案:

答案 0 :(得分:0)

正确; dijit.form.ValidationTextBox.prototype.validator()的默认实现是将this.value与this.regExp匹配,并检查各种其他约束,例如this.required。看看源代码,了解它是如何完成的。如果您覆盖它,您可以自己提供实现。您的实现可能会选择委托原型方法,并使用您自己的测试逻辑“和”结果。我想你也可以覆盖isValid。