我想使用Dojo检查两个密码是否相同。
以下是我的HTML:
<form id="form" action="." dojoType="dijit.form.Form" /
>
<p
>Password:<input type="password"
>
name="password1"
id="password1"
dojoType="dijit.form.ValidationTextBox"
required="true"
invalidMessage="Please type a password" /</p
>
<p
>Confirm:<input type="password"
>
name="password2"
id="password2"
dojoType="dijit.form.ValidationTextBox"
required="true"
invalidMessage="This password doesn't match your first password" /</p
>
<div dojoType="dijit.form.Button" onClick="onSave"
>Save</div
>
<form id="form" action="." dojoType="dijit.form.Form" /
这是我到目前为止的JavaScript:
<p
感谢您的帮助。我可以用纯JavaScript做到这一点,但我试图找到Dojo的做法。
答案 0 :(得分:4)
这会让你更加接近
验证功能:
function confirmPassword(value, constraints)
{
var isValid = false;
if(constraints && constraints.other) {
var otherInput = dijit.byId(constraints.other);
if(otherInput) {
var otherValue = otherInput.value;
console.log("%s == %s ?", value, otherValue);
isValid = (value == otherValue);
}
}
return isValid;
}
function onsubmit()
{
var p1 = dijit.byId('password1').value;
var p2 = dijit.byId('password2').value;
return p1 == p2;
}
和输入对象:
<p>Password: <input type="password"
name="password1"
id="password1"
dojoType="dijit.form.ValidationTextBox"
required="true"
intermediateChanges=false
invalidMessage="Please type a password" /></p>
<p>Confirm: <input type="password"
name="password2"
id="password2"
dojoType="dijit.form.ValidationTextBox"
required="true"
constraints="{'other': 'password1'}"
validator=confirmPassword
intermediateChanges=false
invalidMessage="This password doesn't match your first password" /></p>
答案 1 :(得分:2)
更简单,使用预先编写的Dojox小部件 dojox.form.PasswordValidator 。
http://docs.dojocampus.org/dojox/form/PasswordValidator
它可以直接开箱即用!
答案 2 :(得分:1)
我已经解决了!
这page on the Dojo forum很有帮助。
我将确认密码的HTML更改为:
<p
>Confirm:<input type="password"
>
name="password2"
id="password2"
dojoType="dijit.form.ValidationTextBox"
required="true"
validator="return theSame(this, dijit.byId('password1'));"
invalidMessage="This password doesn't match your first password" /</p
>
唯一的区别是添加了验证器参数。
我创建了以下JavaScript函数:
<p
我认为您也可以使用验证器参数来创建要测试的正则表达式,但documentation不是很清楚。