2016-12-15 43 views
0
$("#submit").click(function() { 
    var userinput = $('#username').val(); 
    var mobilenumber=$('#mobnum').val(); 
    var address1=$('#addr1').val(); 
    var address2=$('#addr2').val(); 
    var emailid=$('#mail').val(); 

    var characterReg = /^([a-zA-Z]{2,30})$/; 
    var numericReg=/^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/; 
    var emailReg=/^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
    var addrReg = /^\s*[a-zA-Z0-9,\s]+\s*$/; 

    var errors=false; 

    if (!characterReg.test(userinput)) { 
     $('#username').addClass('boxBorder'); 
     errors=true; 
    } else { 
     $('#username').removeClass('boxBorder'); 
    } 
    if (!numericReg.test(mobilenumber)) { 
     $('#mobnum').addClass('boxBorder'); 
     errors=true; 
    } else { 
     $('#mobnum').removeClass('boxBorder'); 
    } 
    if (!emailReg.test(emailid)) { 
     $('#mail').addClass('boxBorder'); 
     errors=true; 
    } else { 
     $('#mail').removeClass('boxBorder'); 
    } 
    if ($('#pwd').val()=='') { 
     $('#pwd').addClass('boxBorder'); 
     errors=true;  
    } else { 
     $('#pwd').removeClass('boxBorder'); 
    } 
    if (!addrReg.test(address1)) { 
     $('#addr1').addClass('boxBorder'); 
     errors=true; 
    } else { 
     $('#addr1').removeClass('boxBorder'); 
    } 
    if (!characterReg.test(address2)) { 
     $('#addr2').addClass('boxBorder'); 
     errors=true;  
    } else { 
     $('#addr2').removeClass('boxBorder'); 
    } 
    if (errors) { 
     return false; 
    } else { 
     return true; 
    } 
}); 

我寫這個代碼在jQuery中進行表單驗證。它完美的作品。但是,我想重寫單個if...else中的所有條件,而不是使用多個if else條件。可能嗎?優化,如果其他條件jQuery表單驗證

+0

你爲什麼要重寫代碼?它適合你說的完美!這很容易理解,而且很容易維護。我認爲任何將所有內容放在一個'if ... else'語句中的努力都會使事情變得複雜,而不是使代碼更好理解。如果你在擱置一段時間後重新訪問你的代碼,這並不會對你有所幫助。最好的代碼不一定是技術上最複雜或最短的一個... – Flyer53

回答

0

可以使用switch案件如下

switch(true){ 
    case addrReg.test(address1): 
    case addrReg.test(address2): 
.............. 
} 
0
$("#submit").click(function() { 
     var userinput = $('#username').val(); 
     var mobilenumber=$('#mobnum').val(); 
     var address1=$('#addr1').val(); 
     var address2=$('#addr2').val(); 
     var emailid=$('#mail').val(); 

     var characterReg = /^([a-zA-Z]{2,30})$/; 
     var numericReg=/^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/; 
     var emailReg=/^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
     var addrReg = /^\s*[a-zA-Z0-9,\s]+\s*$/; 

     var errors=false; 

     $('input').removeClass('boxBorder'); 

     if (!characterReg.test(userinput)) { 
      $('#username').addClass('boxBorder'); 
      errors=true; 
     } 
     if (!numericReg.test(mobilenumber)) { 
      $('#mobnum').addClass('boxBorder'); 
      errors=true; 
     } 
     if (!emailReg.test(emailid)) { 
      $('#mail').addClass('boxBorder'); 
      errors=true; 
     } 
     if ($('#pwd').val()=='') { 
      $('#pwd').addClass('boxBorder'); 
      errors=true;  
     } 
     if (!addrReg.test(address1)) { 
      $('#addr1').addClass('boxBorder'); 
      errors=true; 
     } 
     if (!characterReg.test(address2)) { 
      $('#addr2').addClass('boxBorder'); 
      errors=true;  
     } 
     if (errors) { 
      return false; 
     } else { 
      return true; 
     } 
    }); 
+0

此代碼沒有顯示錯誤框,而單擊提交按鈕時沒有輸入值 – moksha