jQuery: cuadro de texto vacío o no

Tengo varios cuadros de texto en una página, imagina 10, 4 de estos 10 tienen la clase "myClass". Me gustaría saber si TODOS estos cuadros de texto con la clase "myClass" tienen longitud = 0, en un comando de línea

Posible?

Gracias,

Actualización1

function MyValidation() {
    var res = true;
    if (!$("input:text.MyClass[value!='']").length) {
        alert("testing");
        res = false;
    }
    return res;
}

Cuando recibes este código, recibo un "verdadero" todo el tiempo, nunca "falso" y nunca "prueba". Probé el código de cada respuesta.

preguntado el 10 de mayo de 11 a las 13:05

Los nombres de las clases distinguen entre mayúsculas y minúsculas. Deberías escribir .myClass en lugar de .MyClass. -

Lo comprobé de nuevo y el caso está bien.

eso es extraño, me funciona en este violín. -

4 Respuestas

esto debería ser suficiente

if ( $('.myClass').filter(function(){
                             return $(this).val() != '';
                           }).length == 0
   )
 {
  /* code to run when all are empty */

 }

manifestación http://jsfiddle.net/gaby/QasRK/


Para adaptarse a los espacios en blanco en el cambio de cadena

return $(this).val() != '';

a

return $(this).val().replace(/\s/g,'') != '';

Esto quita el texto de espacios en blanco antes de compararlo con ''

contestado el 11 de mayo de 11 a las 00:05

¿Es posible agregar un Trim ()? espacio espacio espacio en el cuadro de texto debe considerarse vacío - Kris-I

@Kris, los nombres de las clases distinguen entre mayúsculas y minúsculas. si utiliza myClass en el html debe usar el mismo en javascript y no MyClass. - Gabriele Petrioli

Puedes escribir

if (!$(input.myClass).is(function() { return this.value.length > 0; }))

contestado el 10 de mayo de 11 a las 17:05

Eso también se puede hacer con los selector de atributos:

if (!$("input:text.myClass[value!='']").length) {
    // All the .myClass text boxes are empty.
}

contestado el 10 de mayo de 11 a las 17:05

No sin usar not(), is() or filter(), Por lo que yo puedo decir. - Frédéric Hamidi

Si quieres valores:

var any = $("input:text.myClass").map(function() {
    var value = $.trim($(this).val());
    if (value != "") return value;
}).length > 0;

http://jsfiddle.net/hunter/e6yEd/


Si no lo hace:

var any = $("input:text.myClass").filter(function() {
    return $.trim($(this).val()) != "";
}).length > 0;

http://jsfiddle.net/hunter/e6yEd/5/

contestado el 10 de mayo de 11 a las 17:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.