Simplication de code Javascript

Résolu
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 

3 réponses

  1. Y'a personne qui s'y connait en jQuery ici ? o_O
    0
    1. 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
      1. 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