组, 我有一个快速的问题? - 当最后一次按键启动时,有一种方法可以触发此onclick事件。
例如:在reTypePwd文本框中的最后一个keyup上验证newPwd == reTypePwd。如果我的密码是foo,我希望事件触发“o”而不是“f”。
function allClear() {
var newPasswd = document.getElementById('newPwd');
var reTypePasswd = document.getElementById('reTypePwd');
newPasswd.value = "";
reTypePasswd.value = "";
return true;
}
function validate()
{
var currPwd = document.getElementById("currPwd").value;
var newPwd = document.getElementById("newPwd").value;
var confirmNP = document.getElementById("reTypePwd").value;
if(currPwd == "" || newPwd == "")
{
document.getElementById("btnChange").disabled = true;
if(confirmNP!=newPwd){
document.getElementById("confirm").value = "Doesn't Match";
}
}
if(confirmNP!=newPwd)
{
document.getElementById("newPwd").style.cssText = "border-color:Red";
document.getElementById("reTypePwd").style.cssText = "border-color: Red";
}
else {
document.getElementById("btnChange").disabled = false;
document.getElementById("newPwd").style.cssText = "border-color:none";
document.getElementById("reTypePwd").style.cssText = "border-color: none";
}
}
谢谢
乍得
答案 0 :(得分:2)
您不应该专门使用onkeyup 或 onkeydown来检测用户输入。它们不会捕获边缘情况,例如剪切,粘贴,拖放或拼写检查修正。您应该使用HTML 5事件, oninput (Firefox 2 +,Google Chrome,Safari 4 +,Opera 10)和Internet Explorer的 onpropertychange 事件。对于不支持这两种事件的浏览器,您可以使用0ms计时器回退到 onkeydown 进行检查,这比 onkeyup 好一点。
答案 1 :(得分:0)
我猜“当最后一个按键启动时”是指两个密码字段包含相同长度的值?如果是这样,那么让keyup事件监听器首先检查值的长度。例如,在第二个密码长度等于或长于第一个密码的长度之前,请勿尝试验证。当然,如果第二个比第一个长,则验证失败:)