values val serialize name multiple form array javascript jquery arrays

javascript - val - Cómo obtener una matriz con jQuery, múltiples<input> con el mismo nombre



name jquery val() (8)

En primer lugar, no debe tener múltiples elementos con la misma ID en una página: la ID debe ser única.

Solo podría eliminar el atributo id y reemplazarlo por:

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

y para obtener una matriz de los valores de la tarea do

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

Tengo un formulario donde los usuarios pueden agregar campos de entrada con jQuery.

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

Después de enviar el formulario, obtengo una matriz en PHP.

Quiero manejar esto con $.ajax() pero no tengo idea de cómo convertir mis <input> s a una matriz en jQuery.

Gracias por adelantado.


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()); });


No puede usar la misma identificación para múltiples elementos en un documento. Mantenga los identificadores diferentes y nombre lo mismo para los elementos.

<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)); });


Para capturar la matriz de nombres, la uso:

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


Para elementos múltiples, debe darle una clase en lugar de identificación, por ejemplo:

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

Ahora puedes hacer que aquellos que usan jquery tengan algo como esto:

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



Usando el mapa :

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

Si cambia o elimina la identificación (que debe ser única), también puede usar el selector $("input[name=''task//[//]'']")

Ejemplo de trabajo: http://jsbin.com/ixeze3


si quiere que el selector obtenga la misma identificación, use:

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