jQuery之綁定焦點事件(焦點事件失效)


    在使用jQuery綁定事件時,若某個事件不存在,則該事件后 綁定的事件均失效:

    如圖所示,若失去焦點事件checkEmail不存在, 會導致后面的事件checkMobile,和事件checkBirth均失效

   

 

   完整代碼如下:

  1 <!doctype html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5 <title>使用正則表達式驗證注冊頁面</title>
  6     <link rel="stylesheet" href="css/register.css">
  7 </head>
  8 
  9 <body>
 10 <section id="register">
 11     <div><img src="images/logo.jpg" alt="logo" /><img src="images/banner.jpg" alt="banner" /></div>
 12     <h1 class="hr_1">新用戶注冊</h1>
 13     <form action="" method="post" name="myform">
 14         <dl>
 15             <dt>用戶名:</dt>
 16             <dd><input id="user" type="text" /><div id="user_prompt">用戶名由英文字母和數字組成的4-16位字符,以字母開頭</div></dd>
 17         </dl>
 18         <dl>
 19             <dt>密碼:</dt>
 20             <dd><input id="pwd" type="password"  /><div id="pwd_prompt">密碼由英文字母和數字組成的4-10位字符</div></dd>
 21         </dl>
 22         <dl>
 23             <dt>確認密碼:</dt>
 24             <dd><input id="repwd" type="password"/><div id="repwd_prompt"></div></dd>
 25         </dl>
 26         <dl>
 27             <dt>電子郵箱:</dt>
 28             <dd><input id="email" type="text"/><div id="email_prompt"></div></dd>
 29         </dl>
 30         <dl>
 31             <dt>手機號碼:</dt>
 32             <dd><input id="mobile" type="text" /><div id="mobile_prompt"></div></dd>
 33         </dl>
 34         <dl>
 35             <dt>生日:</dt>
 36             <dd><input id="birth" type="text"/><div id="birth_prompt"></div></dd>
 37         </dl>
 38         <dl>
 39             <dt>&nbsp;</dt>
 40             <dd><input name="" type="image" src="images/register.jpg" class="btn" /></dd>
 41         </dl>
 42   </form>
 43 </section>
 44 
 45 <script src="js/jquery-1.12.4.js"></script>
 46 <script>
 47     $(document).ready(function(){
 48         //綁定失去焦點事件
 49         $("#user").blur(checkUser);
 50         $("#pwd").blur(checkPWD);
 51         $("#repwd").blur(checkRPWD);
 52         //$("#email").blur(checkEmail);          嘗試取消注釋,  看看會發生什么    (取消注釋該語句后,事件checkMobile和事件checkBirth將不會輸出事件中定義的報錯信息)
 53         $("#mobile").blur(checkMobile);
 54         $("#birth").blur(checkBirth);
 55     })
 56     
 57     function checkUser(){
 58         var reg= /^[a-zA-Z]([a-zA-Z0-9]{3,15})$/;
 59         if(reg.test($("#user").val()) == false){
 60             $("#user_prompt").html('請輸入正確的用戶名');
 61             $('#user').focus();
 62             return false;
 63         }
 64         $("#user_prompt").html('');
 65         return true;
 66     }
 67     
 68     function checkPWD(){
 69         var reg = /^[a-zA-Z0-9]{4,10}$/;
 70         if(reg.test($('#pwd').val())==false){
 71             $("#pwd_prompt").html('請輸入正確的密碼');
 72             $("#pwd").focus();
 73             return false;
 74         }
 75         $("#pwd_prompt").html("");
 76         return true;        
 77     }
 78     
 79     function checkRPWD(){
 80         if($("#repwd").val() != $("#pwd").val()){
 81             $("#repwd_prompt").html("兩次輸入的密碼不一致");
 82             $("#pwd").focus();
 83             return false;
 84         }    
 85         $("#repwd_prompt").html('---');
 86         return true;
 87     }
 88     
 89     function checkMobile(){
 90         var reg = /^1\d{10}$/;
 91         if(reg.test($("#mobile").val()) == false){
 92             $("#mobile_prompt").html("請輸入正確的手機號碼");
 93             $("#mobile").focus();
 94             return false;
 95         }
 96  97         return true;
 98     }
 99     
100     function checkBirth(){
101         var reg = /^((19\d{2})|(200\d)|(201[0-6]))-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/;
102         if(reg.test($("#birth").val()) == false){
103             $("#birth_prompt").html("請輸入正確的生日格式");
104             $("#birth").focus();
105             return false;
106         }
107         $("#birth_prompt").html("--");
108         return true;
109         var birth = $(this).val();
110         var reg = /^((19\d{2})|(200\d)|(201[0-6]))-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/;
111         if (reg.test(birth) == false) {
112             $("#birth_prompt").html("生日格式不正確,例如1980-5-12或1988-05-04");
113             return false;
114         }
115 116         return true;
117     }
118     
119     
120 </script>
121 
122 </body>
123 </html>

   

 

 

   如有大佬知道緣由,可在下方評論。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM