J'ai plusieurs champs de saisie comme suit:
<input type="text" name="card[]">
<input type="text" name="card[]">
<input type="text" name="card[]">
Les utilisateurs peuvent ajouter ou supprimer ces champs selon leurs besoins. Le nom des champs est donc un tableau. Pour obtenir la longueur du tableau, cela fonctionne bien:
var n = $("input[name^= 'card']").length;
Comment puis-je lire la valeur du tableau?
J'ai essayé ce qui n'a pas fonctionné:
var n = $("input[name^='card']").length;
var array = $("input[name^='card']");
for(i=0;i<n;i++)
{
card_value= array[i].val();
alert(card_value);
}
Cela n'a pas fonctionné non plus:
var n = $("input[name^='card']").length;
for(i=0;i<n;i++)
{
card_value= $("input[name^='card["+i+"]']").val();
alert(card_value);
}
Comment puis-je lire la valeur de ce tableau? Aide!
Tu devrais utiliser:
card_value= array.eq(i).val(); //gets jquery object at index i
ou
card_value= array[i].value; //gets dom element at index i
Utiliser la fonction de carte
var values = $("input[name^='card']").map(function (idx, ele) {
return $(ele).val();
}).get();
Les collections jQuery
ont un itérateur intégré avec .each
:
$("input[name^='card']").each(function () {
console.log($(this).val());
}
pour lire une array
, vous pouvez également utiliser la méthode "each
" de jQuery
:
$.each($("input[name^='card']"), function(index, val){
console.log(index + " : " + val);
});
bonus: vous pouvez également lire des objets avec cette méthode.
Utilisez: http://jsfiddle.net/xH79d/
var n = $("input[name^='card']").length;
var array = $("input[name^='card']");
for(i=0; i < n; i++) {
// use .eq() within a jQuery object to navigate it by Index
card_value = array.eq(i).attr('name'); // I'm assuming you wanted -name-
// otherwise it'd be .eq(i).val(); (if you wanted the text value)
alert(card_value);
}
Le plus grand centre commercial
Vous pouvez simplement parcourir les éléments:
$("input[name^='card']").each(function() {
console.log($(this).val());
});
Votre syntaxe est incorrecte.
card_value = $(array[i]).val();
ou card_value = array[i].value;
le tableau [i] n'est pas un objet jQuery (pour une raison quelconque).
Vérifier la console de votre navigateur peut être utile pour des choses comme celle-ci.