【问题标题】:JavaScript Password Verification onkeydown not workingJavaScript密码验证onkeydown不起作用
【发布时间】:2020-12-11 00:54:19
【问题描述】:

我尝试实现简单的密码验证,但以下功能似乎不起作用,它们甚至没有显示在控制台中。有什么我想念的非常简单的东西吗?

"user strict";
window.onload = init;
function init() {
    document.getElementById("newPassword").onkeydown = checkPassword;
    document.getElementById("confirmPassword").onkeydown = checkConfirm;
}
function checkPassword(event){
    let newPass = document.getElementById("newPassword").value;
    var passwordRegex = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*&])[A-Za-z\d]@$!%*?&]{8,}$")
    if(!passwordRegex.test(newPass)){
        feedback.innerHTML = "'"+newPass + "' is not secure."
        let result = passwordRegex.test(newpass);
        console.log("result: " + result);
        return false;
    }
    return true;
}
function checkConfirm(event) {
    let confirmPass = document.getElementById("confirmPassword").value;
    let newPass = document.getElement("newPassword").value;
    if(newPass != confirmPassword)) {
        feedback.innerHTML = "Password does not match.";    
        return false;
    }
    return true;
}
let feedback - document.getElementById("feedback");

function newUserRequest() {

}

function checkUser() {
    let email = document.getElementById(emailUser).value;
    let password = document.getElementById("passwordUser").value;

}
<div class="itemsFormDisplay">
    <label class="detailNames">Password</label><br>
    <input id="newPassword" class="detailsFields" type="password" name="password" required>
</div>

<div class="itemsFormDisplay">
    <label class="detailNames">ConfirmPassword</label><br>
    <input id="confirmPassword" class="detailsFields" type="password" name="password" required>
</div>

【问题讨论】:

  • 不要使用onkeydown 事件,因为它总是在输入任何内容之前触发。请改用oninput 事件。
  • let feedback - document.getElementById("feedback");改成let feedback = document.getElementById("feedback");
  • 另外,(newPass != confirmPassword)){中有一个未闭合的圆括号

标签: javascript html passwords password-protection


【解决方案1】:

window.onload = init; 更改为window.onload = init();

【讨论】:

  • 你可以编辑问题,添加你为什么这么说......等等?
猜你喜欢
  • 2016-08-16
  • 1970-01-01
  • 2018-07-18
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 2015-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多