¡Intento codificar una función de validación pero por mi vida no puedo tomar los valores de las entradas!

Es un bucle y quiero registrar en la consola el valor de entrada actual, ¿cómo puedo hacer eso?

function is_empty() {
    for (var i=0; i < $('form input').length; i++) {
        console.log($('form input')[i]);
        console.log($('form input')[i].val);
    }
}

Estoy obteniendo esto en la consola:

Primera línea: <input type="text" name="name" placeholder="Name..">

Segunda línea: undefined

¿Cómo puedo obtener los valores?

Gracias..

1
MokkaArchiven9 8 sep. 2018 a las 12:57

3 respuestas

La mejor respuesta

Cuando usa $(...)[i], está accediendo al elemento subyacente , no a una colección jQuery que contiene ese elemento. .val() es un método en una colección jQuery (tenga en cuenta los paréntesis, es una función , por lo que debe llamarla). En un elemento ordinario, debe usar .value para recuperar el valor asociado:

console.log($('form input')[i].value);

O, si desea usar el método jQuery, use eq para transformar la colección de elementos coincidentes en una colección que contenga solo el elemento en ese índice, y luego llame a .val():

console.log($('form input').eq(i).val())
2
CertainPerformance 8 sep. 2018 a las 10:00

Utilice. val () no. val

console.log($('form input')[i].val());
0
Mark Salvania 8 sep. 2018 a las 12:02

Debería ser .val () en lugar de val

0
Raf 8 sep. 2018 a las 09:59