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());
});
Puede usar jquery.serializeJSON para hacer esto.
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...