2013-07-29 102 views
0

这是我的表单。使用onblur进行表单验证

<form method="post" name="frm" > 

    <label>Name*<input type="text" name="Name" value="<?php echo $r['Name'] ?>" onblur="if(this.value.length<3) alert('Name too short');" /></label> 


    <label>Username*<input type="text" name="UN" value="<?php echo $r['UN'] ?>" onblur="if(this.value.length<5) alert('Username too short');" /></label> 
    <label>Password*<input type="password" name="PW" onblur="validation()" /></label> 
    <label>Confirm Password*<input type="password" name="CM" onblur="validation()" /></label> 
    <?php } ?> 

    <input type="submit" name="Submit" value="<?php if($new) echo 'Register'; else echo 'Update'; ?>" /> 
</form> 

不用写我试图让所有这些事件成函数调用验证(),因为我已经对密码进行确认密码fields.Here是我的验证功能独立的onblur事件。

<script language="javascript"> 
     function validation(){ 
      var password= document.frm.PW.value; 
      var password2=document.frm.CM.value; 
      if (password.length<5){ 
       alert ("Password too short"); 
       } 
      else if(password!=password2){ 
       alert("password mismatch"); 
       } 

      } 

    </script> 

但有了这个代码,一旦我已经填写密码,当我上午即将开始为输入确认密码字段它提醒消息(“密码不匹配”)。如何this.And的摆脱了所有的表单标签,如果我验证和使用验证()函数,然后在每个标签,我必须调用onblur = validation();

+1

如果您在键入时将页面上显示的内容替换为警报,则更不用说烦人了。即用错误消息更新跨度。我会避免提醒,但是如果您确实使用它们,请单击Submit(提交)时保存。 – Rake36

回答

1

没有在主密码更改时触发密码验证 - 当您更改密码2或单击提交时它会被解雇。 :)

如果坚持检查,当您更新密码和密码2,我只想补充检查,以查看是否密码2被留空白:

else if(password !== password2 && password2 !== ""){ 

但在提交做所有你的支票是更清洁的解决方案(正如Rake所说的那样,仍然需要更新而不是提醒)。

+0

这是没有使用onblur使用

clarkson