Javascript 表单验证 "onKeyup vs on keydown"

标签 javascript html ajax

集团, 我有一个快速的问题? -有没有办法在最后一次按键时触发这个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/

相关文章:

javascript - 在菜单上滑动 Logo 和文本单击

html - 交叉重复红线 css 外部 div

javascript - 离线/在线状态 PHP 的基本轮询协议(protocol)

javascript - 我试图根据使用 html 中的单选按钮所做的选择来显示/隐藏 div

javascript - 如何平滑滚动到 div id?

java - 使用输出流显示来自服务器的图像

java - 一些ajax post请求的tomcat 2分钟超时

javascript - 为什么当我选择第二个输入框时音译不起作用?

javascript - 使用 javascript 在后台运行任务

JavaScript - 测试浏览器是否支持 getAttributeNode、setAttributeNode 和 createAttribute