2013-07-19 14 views
5

Jak w prosty sposób sprawdziłbym, czy któryś z wybranych wejść jest pusty?jQuery sprawdź, czy któreś z wybranych wejść jest puste

dostaję moje wejścia w ten sposób:

$myinputs = $('.inputstotest'); 

i będzie testować jedno wejście z:

if ($.trim($this.val()) == '') 

ale jak testować grupę i powrócić true, jeśli nie wszystkie są puste lub false, jeśli którykolwiek (co najmniej jeden) jest pusty?

Odpowiedz

2
var result = true; 
$('.inputstotest').each(function() { 
    if ($.trim($(this).val())) == '') { 
     result = false; 
     return false; // Terminate the .each loop 
    } 
}); 
return result; 
6

sugeruję:

var someEmpty = $('.inputstotest').filter(function(){ 
    return $.trim(this.value).length === 0; 
}).length > 0; 

z powyższym someEmpty będzie logiczna, true jeśli istnieją inputs tej klasy-name z trimmed- value równa zeru, jeśli nie false wejścia tej nazwy klasy mają przycięte-value o długości równej zeru.

Odniesienia:

+0

Lubię ten sposób +1 –

2

Można zrobić

var $myinputs = $('.inputstotest'); 
if($myinputs.filter(function() { return $.trim(this.value) == ''; }).length > 0) { 
    //There is at least one empty input 
} 
0

Co jeśli miał każde wejście posiada tej samej klasy np. class="checkInput" używane jQuery do cyklu przez nich za pomocą poniższego kodu:

var anyBlank = false; 
$('.checkInput').each(function(){ 
    if($(this).val() == ''){ 
     anyBlank = true; 
    } 
}); 

if(anyBlank){ 
    alert('There is at least 1 input that is blank'); 
} 
2
var invalidInputs = $('.inputstotest').filter(function() { 
    return $.trim(this.value) == ''; 
}); 

if (invalidInputs.length > 0) { 
    //some were invalid 
    invalidInputs.after('<span>Please enter a value!</span>'); 
} 
Powiązane problemy