2011-10-24 5 views
1

J'ai quelques formes qui créent dynamiquement et j'ai un bouton de soumission commun, sur ce clic, je dois parcourir toutes les formes et obtenir la valeur d'un élément particulier et avoir besoin d'obtenir la somme. J'ai donné un exemple de code ci-dessous, le problème est que le code s'exécute 4 fois, mais je m'attends à ce que la boucle s'exécute 2 fois. Quel est le problème avec ce code?jQuery en boucle à travers plusieurs formulaires

<html> 
     <head> 
      <script src="http://code.jquery.com/jquery-latest.js"></script> 
      <script> 
      $("document").ready(function() { 
       $('form').each(function(index) { 
        $('form > select').each(function(selindex) { 
         alert(index + ":"+ selindex + ': ' + $(this).text()); 
        }); 
       }); 
      }); 
      </script> 
     </head> 
    <body> 
     <form name="form[1]"> 
      <input type="text"> 
      <select name="select[1]"> 
       <option value="1">One 1</option> 
       <option value="2">Two 1</option> 
      </select> 
     </form> 
     <form name="form[2]"> 
      <select name="select[2]"> 
       <option value="1">One 2</option> 
       <option value="2">Two 2</option> 
      </select> 
     </form> 
    </body> 
    </html> 
+0

Y at-il une raison quelconque vous ne combinez pas seulement ceux-ci en une seule forme? – Blazemonger

+0

Il suffit de changer pour: '$ (this) .find ('select'). Chaque (...)' –

Répondre

4

Retirez la boucle extérieure - votre sélecteur intérieur est suffisant pour obtenir des données de toutes les formes du document:

   $('form > select').each(function(selindex) { 
        alert(index + ":"+ selindex + ': ' + $(this).text()); 
       }); 
+0

+1 pour accéder à travers la relation parent-enfant –

+0

Oui, effectivement vous dites: "Pour chaque forme, regardez à toutes les formes avec un tag de sélection, puis faites-le " – dnuttle

+0

Merci pour l'aide .. Dans ce cas, comment obtenir le formulaire ID? – binoy

Questions connexes