我想使用 Dojo 检查两个密码是否相同。
这是我的 HTML:
<p><code><form id="form" action="." dojoType="dijit.form.Form" /</code>></p> <p><code><p</code>>Password: <code><input type="password"<br/> name="password1"<br/> id="password1"<br/> dojoType="dijit.form.ValidationTextBox"<br/> required="true"<br/> invalidMessage="Please type a password" /</code>><code></p</code>></p> <p><code><p</code>>Confirm: <code><input type="password"<br/> name="password2"<br/> id="password2"<br/> dojoType="dijit.form.ValidationTextBox"<br/> required="true"<br/> invalidMessage="This password doesn't match your first password" /</code>><code></p</code>></p> <p><code><div dojoType="dijit.form.Button" onClick="onSave"</code>>Save<code></div</code>></p>
<code></form</code>>
这是我目前拥有的 JavaScript:
var onSave = function() {<br/> if(dijit.byId('form').validate()) { alert('Good form'); }<br/> else { alert('Bad form'); }<br/> }
感谢您的帮助。我可以用纯 JavaScript 来做到这一点,但我正在努力寻找 Dojo 的方法来做到这一点。
最佳答案
这会让你们更亲近
- 设置 intermediateChanges=false 使验证器在每次击键时都运行。
- 验证 dijit 的约束对象被传递给它的验证器。使用它来传递其他密码条目
- dijit.form.Form 在其所有子 dijit 提交时自动调用 isValid() ,如果它们没有全部验证则取消提交。我虽然无效的会得到他们的错误信息,但他们没有。这留给读者做练习 ;-)
验证函数:
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>
关于javascript - dojo 中的密码检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/308501/