Simplication de code Javascript

Résolu
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

je cherche à simplifier ce code, car je sais bien qu'un dev doit suivre le principe DRY ( Don't repeat yourself ), mais dans ce cas, j'ai un peu de mal surtout que je débute en JQuery. Voici le code, il est simple, un peu long car beaucoup de répétition, c'est surtout au niveau des If que ça pose problème.

     <script src="jquery.js"></script> 
      <script type="text/javascript"> 
       $(document).ready(function() { 
        $('#valid').hide(); 
        $("input[type=text]").each(function () { 
         this.value = this.defaultValue; 
        }); 
        $("input[type=text]").keyup(function() { 
         var myValMoney = $('#money').val(); 
         var myValGemP = $('#priceFS').val(); 
         var myValTomeP = $('#priceTome').val(); 
         var myValSellP = $('#sellingPrice').val(); 
          
         var myValSG1 = $('#SG1').val(); 
         var myValSG2 = $('#SG2').val(); 
         var myValSG3 = $('#SG3').val(); 
         var myValSG4 = $('#SG4').val(); 
         var myValSG5 = $('#SG5').val(); 
         var myValSG6 = $('#SG6').val(); 
         var myValST = $('#ST').val(); 
          
         var regex = /^([0-9]{0,8})$/; 

         if (regex.test(myValMoney) && myValMoney!=''){ 
          $('#money').removeClass('databad'); 
          $('#money').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#money').removeClass('datagood'); 
          $('#money').addClass('databad'); 

         } 
          
         if (regex.test(myValGemP) && myValGemP!=''){ 
          $('#priceFS').removeClass('databad'); 
          $('#priceFS').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#priceFS').removeClass('datagood'); 
          $('#priceFS').addClass('databad'); 

         }          
          
         if (regex.test(myValTomeP) && myValTomeP!=''){ 
          $('#priceTome').removeClass('databad'); 
          $('#priceTome').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#priceTome').removeClass('datagood'); 
          $('#priceTome').addClass('databad'); 

         } 
          
         if (regex.test(myValSellP) && myValSellP!=''){ 
          $('#sellingPrice').removeClass('databad'); 
          $('#sellingPrice').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#sellingPrice').removeClass('datagood'); 
          $('#sellingPrice').addClass('databad'); 

         } 
             
         if (regex.test(myValSG1) && myValSG1!=''){ 
          $('#SG1').removeClass('databad'); 
          $('#SG1').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#SG1').removeClass('datagood'); 
          $('#SG1').addClass('databad'); 

         } 
          
         if (regex.test(myValSG2) && myValSG2!=''){ 
          $('#SG2').removeClass('databad'); 
          $('#SG2').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#SG2').removeClass('datagood'); 
          $('#SG2').addClass('databad'); 

         } 
          
         if (regex.test(myValSG3) && myValSG3!=''){ 
          $('#SG3').removeClass('databad'); 
          $('#SG3').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#SG3').removeClass('datagood'); 
          $('#SG3').addClass('databad'); 

         } 
          
         if (regex.test(myValSG4) && myValSG4!=''){ 
          $('#SG4').removeClass('databad'); 
          $('#SG4').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#SG4').removeClass('datagood'); 
          $('#SG4').addClass('databad'); 

         } 
          
         if (regex.test(myValSG5) && myValSG5!=''){ 
          $('#SG5').removeClass('databad'); 
          $('#SG5').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#SG5').removeClass('datagood'); 
          $('#SG5').addClass('databad'); 

         } 
          
         if (regex.test(myValSG6) && myValSG6!=''){ 
          $('#SG6').removeClass('databad'); 
          $('#SG6').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#SG6').removeClass('datagood'); 
          $('#SG6').addClass('databad'); 

         } 
          
         if (regex.test(myValST) && myValST!=''){ 
          $('#ST').removeClass('databad'); 
          $('#ST').addClass('datagood'); 
          $bool = true; 
         } 
         else{ 
          $('#ST').removeClass('datagood'); 
          $('#ST').addClass('databad'); 

         } 
          
         if(!$("input[type=text]").hasClass('databad')){ 
          $('#valid').show(); 
         } 
         else{ 
          $('#valid').hide(); 
         } 
          
        }); 
         
         
       }); 
      </script> 


Merci d'avance, 


Xineroks 
A voir également:

3 réponses

Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Y'a personne qui s'y connait en jQuery ici ? o_O
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
UP :/

Je désespère c'est la 2ème fois que je demande de l'aide pour du JQuery, et personne ne se prononce. :/
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Désolé mais je ne vois pas comment simplifier ton code, il n'y a pas à première vus de partie commune

avec switch /case ??
0