Można to zrobić tak:
function validate(){
var rv = true;
$('input[type=text]').each(function(){
if($(this).val() == "") {
rv = false; // Set flag
return false; // Stop iterating
}
});
return rv;
}
który zakłada chcesz powrócić true
jeśli go nie znajdzie.
może się okazać, że jest to jeden z tych sitautions gdzie nie chcą korzystać each
w ogóle:
function validate(){
var inputs = $('input[type=text]');
var index;
while (index = inputs.length - 1; index >= 0; --index) {
if (inputs[index].value == "") { // Or $(inputs[index]).val() == "" if you prefer
return false;
}
}
// (Presumably return something here, though you weren't in your example)
}
+1 dla sprytnego wykorzystywania selektora i długości. – Nolo
@Nick Craver, To bardzo stary post, ale mam pytanie. Czy istnieje ryzyko, że powyższa funkcja zwróci 'true' przed zakończeniem pętli' each'? – YahyaE
Absolutnie zero takiego ryzyka, ponieważ dopóki .each() nie zakończy, nie przejdzie do ostatniego wyciągu. @ YahyaE – K48