2013-04-01 2 views
0

J'ai essayé de sélectionner un élément de formulaire multidimensionnel avec JQuery. Mais quand j'essaie d'alerter sa valeur je viens d'obtenir un undefined.Sélection de tableaux multidimensionnels à partir du formulaire avec jquery

C'est ma forme:

<select name='item[1][name]'> 
     <option value='1'>Name 1</option> 
     <option value='2'>Name 2</option> 
     <option value='3'>Name 3</option> 
     <option value='4'>Name 4</option> 
    </select> 

    <input type='text' name='item[1][id]' class='text' /> 

Lorsque je clique sur le bouton soumettre, j'essaie de sélectionner tous mes éléments de formulaire.

J'ai choisi avec succès le champ de saisie de texte:

var item1i = $('input[name="item[1][id]"]'); 
var personi = $(item1i).val(); 

Mais lorsque je tente de sélectionner la balise select comme ceci:

var item1n = $('input[name="item[1][name]"]'); 
var personn = $(item1n).val(); 

Quand j'alerter personi la bonne valeur est affichée. Mais quand j'alerte personn je reçois undefined.

Une idée de ce que je fais mal?

+2

Vous essayez de sélectionner l'étiquette "select" avec un sélecteur "input". – tymeJV

Répondre

5

Utilisez $('select[name="item[1][name]"]');

Ou bien, $(':input[name="item[1][name]"]');

input ne sélectionnera que les éléments avec étiquette input, donc pour votre sélection, vous devez utiliser la balise select.

Alternativement, jquery fournit le sélecteur spécial :input qui retourne tout élément de formulaire (textes d'entrée, sélections, cases à cocher, zone de texte, etc.), vous pouvez donc également l'utiliser.

+0

ne me dérange pas que j'ai essayé de résoudre ce problème pendant deux heures et je n'ai même pas vu que j'utilise l'entrée pour un élément de sélection. – ismaelw

0
var item1n = $('input[name="item[1][name]"]'); 

vous avez le mauvais sélecteur ici. Essayez ceci

var item1n = $('select[name="item[1][name]"]');