2016-12-15 6 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; 
    } 
}); 

Ich schrieb diesen Code für die Formularüberprüfung in jQuery. Es funktioniert perfekt. Aber, ich möchte alle Bedingungen in einzelnen if...else umschreiben, anstatt multiple wenn sonst Bedingung zu verwenden. Ist es möglich?Optimieren, wenn sonst Bedingungen in jquery Form Validierung

+0

folgen Warum wollen Sie den Code neu zu schreiben? Es funktioniert perfekt, sagst du! Es ist leicht zu verstehen und einfach zu pflegen. Ich denke, jeder Versuch, alles in eine "if ... else" -Anweisung zu schreiben, wird die Dinge komplizierter machen, als den Code besser zu verstehen. Und das wird Ihnen nicht helfen, falls Sie Ihren Code nach einer Weile noch einmal ansehen. Der beste Code ist nicht unbedingt der technisch ausgereifteste oder der kürzeste ... – Flyer53

Antwort

0

können Sie switch Fällen verwenden als

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

Dieser Code zeigt keine Fehlerbox an, während er auf "Senden" klickt, ohne den Wert einzugeben – moksha

Verwandte Themen