问题描述
所以我用简单的 JS 验证了一些密码。如果 pw 不匹配,我有一个 if 语句添加一些 css。但是当我返回表单并更改密码以匹配错误时,无论如何都会保留。我添加了控制台日志,看起来它只是停留在第一个 if 并且永远不会移动到 else 。我厌倦了它,没有任何运气的回报。
Javascript
var passwordField = document.getElementById("password");
var passwordConfirmField = document.getElementById("passwordConfirm");
var form = document.getElementById("register");
function validateForm(){
if(passwordField.value != passwordConfirmField){
console.log("error")
document.getElementById("password").style.borderColor = "red";
document.getElementById("passwordConfirm").style.borderColor = "red";
$('#error').show();
console.log("Show")
}
else {
console.log("Pressing")
form.submit();
console.log("Submit")
}
}
PUG
block content
.loginContainer
h1 Register
form#register(method="post",onsubmit="event.preventDefault(); validateForm();")
input(type="text",name="firstName",placeholder="First Name",required="")
input(type="text",name="lastName",placeholder="Last Name",name="username",placeholder="Username",name="email",placeholder="Email",required="")
input#password(type="password",name="password",placeholder="Password",required="")
input#passwordConfirm(type="password",name="passwordConfirm",placeholder="Confirm Password",required="")
.alert.alert-danger#error(role='alert')
| Passwords Do Not Match
input(type="submit",value="Register")
a(href="/login") Already have an account? Login Here
解决方法
因为 if
语句中的条件是错误的。应该是:
passwordField.value !== passwordConfirmField.value
注意:在 ===
上使用严格相等 ==
是一个好习惯,!==
和 !=
也是如此