Simplication de code Javascript

Résolu/Fermé
Xineroks Messages postés 158 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 - Modifié par Xineroks le 10/01/2013 à 17:24
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 11 janv. 2013 à 13:22
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 lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 3
10 janv. 2013 à 19:48
Y'a personne qui s'y connait en jQuery ici ? o_O
0
Xineroks Messages postés 158 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 3
10 janv. 2013 à 23:23
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 janv. 2013 à 13:22
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