我有这个代码验证两个字段上的数据(密码)是否相等。
当我在第一个字段输入密码并转到第二个字段重新输入密码时,我得到错误交叉(fa-close)。
相反,我需要在离开第二个字段之后,之后我收到错误消息。
HTML:
NEW.receipt_id <> OLD.receipt_id
这是我的javascript代码:
<input type="password" name="password" id="password" /><br>
<input type="password" name="password2" id="password2" onKeyUp="checkPass(); return false;" />
<span id="confirmMessage" class="confirmMessage"></span>
帮助将不胜感激。谢谢。
答案 0 :(得分:1)
function checkPass() {
var get_elem = document.getElementById,
pass1 = document.getElementById('password'),
pass2 = document.getElementById('password2'),
message = document.getElementById('confirmMessage'),
colors = {
goodColor: "#fff",
goodColored: "#087a08",
badColor: "#fff",
badColored:"#ed0b0b"
},
strings = {
"confirmMessage": ["good", "bad"]
};
if(password.value === password2.value && (password.value + password2.value) !== "") {
password2.style.backgroundColor = colors["goodColor"];
message.style.color = colors["goodColored"];
message.innerHTML = strings["confirmMessage"][0];
}
else if(!(password2.value === "")) {
password2.style.backgroundColor = colors["badColor"];
message.style.color = colors["badColored"];
message.innerHTML = strings["confirmMessage"][1];
}
else {
message.innerHTML = "";
}
}
<input type="password" name="password" id="password" onkeyup="checkPass()" /><br>
<input type="password" name="password2" id="password2" onkeyup="checkPass()" />
<span id="confirmMessage" class="confirmMessage"></span>
此代码如何为您服务?每当用户释放一个密钥来处理用户在第二个字段中输入内容然后在第一个字段中输入的情况时,我们就会调用checkValue()
(否则即使用户输入,您也会遇到“坏”)这两个领域都是一样的)。除了那个修改,我没有做太多。
修改:我不会对元素(confirmMessage
)的id和class属性使用相同的名称,请参阅this。
答案 1 :(得分:0)
将checkPass()调用放在第二个密码的onblur而不是第一个密码上,或者不检查第二个密码是否为空。