集团, 我有一个快速的问题? -有没有办法在最后一次按键时触发这个onclick事件。
例如:验证 newPwd==reTypePwd 在 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";
}
}
谢谢
乍得
最佳答案
您不应该专门使用 onkeyup 或 onkeydown 来检测用户输入。它们不会捕获边缘情况,例如剪切、粘贴、拖放或拼写检查器更正。您应该使用 HTML 5 事件、可用的oninput(Firefox 2+、Google Chrome、Safari 4+、Opera 10)和 Internet Explorer 的onpropertychange 事件。对于不支持这两个事件的浏览器,您可以使用 0 毫秒计时器回退到 onkeydown 进行检查,这比 onkeyup 好一点。
在较新的浏览器中,您可以检查 oninput事件,这应该是最可靠的方法。
关于Javascript 表单验证 "onKeyup vs on keydown",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789859/