2010-02-15 5 views
2

J'ai un tableau de type textbox dans mon formulaire. Les textbox (s) sont dynamiquement ajoutés en utilisant la fonction javascript. La zone de texte sont nommés comme suit:jquery get value of textbox array

account[0]_number account[0]_balance 
account[1]_number account[1]_balance 

Comment puis-je obtenir les valeurs de ces zones de texte en utilisant jquery?

Voici comment j'ai essayé, mais il donne l'erreur:

if($('#account[' + iteration + ']_balance').val().length==0) 
+0

en utilisant # est pour les références d'identité, pas de noms . –

Répondre

6

Vous pouvez essayer:

var values = $("input[type=text][id^=account][value]").filter(function() { 
    return $(this).val(); 
}).get(); // converts collection to array 

Je ne sais pas si vous faites référence à name ou id, si vous font référence au nom, puis modifiez le sélecteur à input[type=text][name^=account][value].

De même, [value] ne fera correspondre que des éléments non vides avec un attribut value.

Voir http://api.jquery.com/attribute-starts-with-selector/

EDIT cela devrait le faire:

$('input[type=text][name=account_' + iteration + '_balance][value]').val() 
+0

effectivement je veux accéder à un numéro de compte ou un solde spécifique à la fois. Donc, convertir en tableau chaque fois que j'ai besoin d'accéder à un seul compte, semble un peu inefficace? Y at-il un moyen que je peux simplement accéder à une seule zone de texte, si le numéro d'index est connu? – maX

+0

@maxxxee - Wow, j'avais compris quelque chose * complètement * différent. J'ai mis à jour la réponse. – karim79

+0

qui a fonctionné, pouvez-vous me dire si c'est une liste déroulante à la place de la zone de texte dans le même scénario, comment puis-je le lire? – maX

2

et si vous voulez parcourir toutes les zones de texte, vous pouvez

$("input[type=text][id^=account][value]").each(function(){ 
    //put your code here 
}) 
+0

+1, Merci pour votre idée. –