Comment obtenir un tableau avec jQuery, plusieurs <input> avec le même nom

J'ai un formulaire où les utilisateurs peuvent ajouter des champs de saisie avec jQuery.

<input type="text" id="task" name="task[]" /> 

Après avoir soumis le formulaire, j'ai un tableau en PHP.

Je veux gérer cela avec $.ajax() mais je n'ai aucune idée de comment transformer mes <input> s en un tableau dans jQuery.

Merci d'avance.

Utilisation de la carte :

 var values = $("input[id='task']") .map(function(){return $(this).val();}).get(); 

Si vous modifiez ou supprimez l'identifiant (qui devrait être unique), vous pouvez également utiliser le sélecteur $("input[name='task\\[\\]']")

Exemple de travail: http://jsbin.com/ixeze3

Pour plusieurs éléments, vous devez lui attribuer une classe plutôt qu'un identifiant, par exemple:

 <input type="text" class="task" name="task[]" /> 

Maintenant, vous pouvez obtenir ceux qui utilisent jquery quelque chose comme ceci:

 $('.task').each(function(){ alert($(this).val()); }); 

Tout d'abord, vous ne devriez pas avoir plusieurs éléments avec le même identifiant sur une page. L'ID devrait être unique.

Vous pouvez simplement supprimer l'attribut id et le remplacer par:

 <input type='text' name='task'> 

Et pour obtenir un tableau des valeurs de la tâche

 var taskArray = new Array(); $("input[name=task]").each(function() { taskArray.push($(this).val()); }); 

Pour saisir le tableau des noms, j'utilise cela:

 $("input[name*='task']") 

Vous ne pouvez pas utiliser le même identifiant pour plusieurs éléments dans un document. Gardez les identifiants différents et nommez-le pour les éléments.

 <input type="text" id="task1" name="task" /> <input type="text" id="task2" name="task" /> <input type="text" id="task3" name="task" /> <input type="text" id="task4" name="task" /> <input type="text" id="task5" name="task" /> var newArray = new Array(); $("input:text[name=task]").each(function(){ newArray.push($(this)); }); 

HTML:

 <input type="text" name="task[]" class="form-control" id="task"> 

JS:

 var tasks= new Array(); $('input[name^="task"]').each(function() { tasks.push($(this).val()); }); 

Si vous souhaitez que le sélecteur obtienne le même identifiant, utilisez:

 $("[id=task]:eq(0)").val(); $("[id=task]:eq(1)").val(); etc... 

Marco DaeaeaeaeaeaeaeaeaeaAeaeaeaeaeaeaAdiceeaeaea Da Marcoeaea Daeaeaea Da Marco Da Marco Da Marco Da Marco Da Marco Da Marco Da Marco citadineeaeaeaAltaea Da Marco Da Marco Meeten Dafefe Da Marco Marcoan Marco illustrbe