javascript - dojo 中的密码检查

标签 javascript security dojo

我想使用 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/

相关文章:

javascript - 添加到[禁用多重]动态选择字段的选项未发布?

security - 使用 Node.js 的 Kerberos 身份验证

dojo - 如何从 Dijit.Editor 获取值?

Javascript 发布到表单 - 如果字段隐藏则无法工作

JavaScript - 无法正确添加 2 个数字

Javascript:鼠标悬停时发出声音

java - jdbcrealm.invaliduserreason Web 登录失败 : com. sun.enterprise.security.auth.login.common.LoginException:登录失败:安全异常

security - Anchore Engine - Jenkins CI 插件

ajax - Selenium WebDriver-确定元素是否可单击(即,不会被dojo模态灯箱遮盖)

javascript - 如何销毁小部件同时保留它所附加的根节点?