我想使用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
>
这是我到目前为止的JavaScript:
var onSave = function() {
if(dijit.byId('form').validate()) { alert('Good form'); }
else { alert('Bad form'); }
}
谢谢你的帮助.我可以用纯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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。