Comprobando si alguna de las casillas de texto está llena – Jquery

A partir del HTML y JQuery a continuación, estoy tratando de verificar si al menos uno de los cuadros de texto tiene valor. Está funcionando bien.

Me gustaría saber si hay un enfoque mejor y más corto para lograr lo mismo.

HTML

Jquery

 function checker(){ var text1 = $('#text1').val().length; var text2 = $('#text2').val().length; var text3 = $('#text3').val().length; var text4 = $('#text4').val().length; var text4 = $('#text4').val().length; var text5 = $('#text5').val().length; if (text1==0 && text2==0 && text3==0 && text4==0 && text5==0) { alert('atleast one of the field should be filled'); } } 

Violín

https://jsfiddle.net/uaLxfrqc/2/

Puedes lograr esto de una mejor manera:

 var textboxes = $('[id^=text]'); var emptytextboxes = textboxes.filter(function(){ return this.value == ""; }); if(textboxes.length == emptytextboxes.length){ alert('atleast one of the field should be filled'); } 

Demo de trabajo

Simplemente agregue la clase “textboxes” a cada tipo de entrada y repítalo con este fragmento probado y en funcionamiento.

 function checker(){ var bool = false; $('.textboxes').each(function() { if (!$(this).val() == '') { bool = true; } }); alert(bool) } 

Enlace para la demostración.

Pruebe esto, aunque no lo haya probado,

 function checker(){ var x=""; $("input[type='text']").each(function(){ if($(this).val()=="") x=x+"y"; }); if(x.length>0) { alert('atleast one of the field should be filled'); } } 

Esto también funcionaría:

 var isEmpty= false; $("input[type=text]").each(function() { if($(this).val().length > 0) { isEmpty = true; return false; //break out of the loop } }); if(!isEmpty ){ alert('atleast one of the field should be filled'); } 

Aquí hay una DEMO