2016-12-15 19 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