polymer - 使用 Polymer 1.0 进行密码和重新输入密码验证

标签 polymer polymer-1.0

我正在从 Polymer 0.5 迁移到 Polymer 1.0,但无法进行简单的验证 - 密码和重新输入密码字段的经典场景。

使用 Polymer 0.5 我有:

<paper-input-decorator id="passwordDecId" label="New password (8 caratteri almeno)" floatingLabel error="campo obbligatorio!">
    <input id="passwordId" onchange="validatePassword()" is="core-input" type="password" name="password" required pattern=".{8,32}">
</paper-input-decorator>
<paper-input-decorator id="reenterPasswordDecId" label="Re-enter password (8 caratteri almeno)" floatingLabel error="campo obbligatorio!">
    <input id="reenterPasswordId" onchange="validatePassword()" is="core-input" type="password" name="reenterPassword" required pattern=".{8,32}">
</paper-input-decorator>

validatePassword 函数是:

function validatePassword() {
    var passwordDecorator = document.getElementById('passwordDecId');
    var passwordInput = document.getElementById('passwordId');
    var reenterPasswordDecorator = document.getElementById('reenterPasswordDecId');
    var reenterPasswordInput = document.getElementById('reenterPasswordId');
    var pass2 = reenterPasswordInput.value;
    var pass1 = passwordInput.value;

    if (pass1 != pass2) {
        reenterPasswordInput.setCustomValidity("Passwords Don't Match");
    } else {
        // empty string means no validation error
        reenterPasswordInput.setCustomValidity('');
    }

    passwordDecorator.isInvalid = !passwordInput.validity.valid;
    reenterPasswordDecorator.isInvalid = !reenterPasswordInput.validity.valid;
}

它有效,但现在,在迁移到 Polymer 1.0 后,我不再使用 paper-input-decorator,所以我想只用 paper-input 来完成所有事情:

<paper-input id="passwordId" onchange="validatePassword()" name="password" type="text" label="New password" auto-validate required pattern=".{1,32}" error-message="1 caratteri almeno"></paper-input>

<paper-input id="reenterPasswordId" onchange="validatePassword()" name="reenterPassword" type="text" label="Re-enter password" auto-validate required pattern=".{1,32}" error-message="1 caratteri almeno"></paper-input>

我不知道如何更改 validatePassword 函数,以便在两个密码的长度大于 1 个字符但值不同时显示错误当用户按下提交按钮或输入焦点丢失时。

最佳答案

这里有一些关于如何使用 polymer 1.0 验证匹配密码的示例

<paper-input label="Password" required value="{{pass::input}}" id="checkPassword"></paper-input>
<paper-input label="Re-type Password" required value="{{repass::input}}" on-change="passmatch" id="checkPassword"></paper-input>

并添加passmatch功能

passmatch: function(e){
      var password = encodeURIComponent(this.pass);
      var confirmPassword = encodeURIComponent(this.repass);
      if(password != confirmPassword){
        // do something
      }
    }

关于polymer - 使用 Polymer 1.0 进行密码和重新输入密码验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31369599/

相关文章:

javascript - Polymer2 + Firebase : TypeError class extends value undefined, 不是构造函数或 null

html - 在图标和长文本之间换行(无空格)

css - 如何更改 Polymer(1.0) paper-toolbar 背景颜色?

polymer - 如何将隐藏属性绑定(bind)到计算函数 (Polymer 1.0)

javascript - Polymer google-signin 元素获取无法读取 null 的属性 'currentUser'

dart - polymer 元素在酒吧构建后不起作用 - 我忘记了什么吗?

javascript - 页脚高度根据网址?

javascript - Polymer app-route 子路由不会随着路由更改而更新

javascript - Javascript 回调的范围

html - 如何在 Polymer 中使用内容元素?