2010-09-29 19 views

cevap

53

? Return false ve ben

function validate(){ 
$('input[type=text]').each(function(){ 
    if($(this).val() == "") 
    return false; 
}); 
} 

ve kodunun üzerinde

benim için çalışmıyor ilk boş metin kutusu :( herkes yardımcı olabilir bulursanız işlevinden dönmek istiyorum, ama gelen döngü, bunun yerine bu gibi özel "hiçbir değeri" kontrol için uyarlanmış bir seçici kullanmak:

function validate(){ 
    if($('input[type=text][value=""]').length) return false; 
} 

Veya, döngü içinde giderken sonucunu ayarlayın ve geri dönüş dış döngüden o sonucu:

function validate() { 
    var valid = true; 
    $('input[type=text]').each(function(){ 
    if($(this).val() == "") //or a more complex check here 
     return valid = false; 
    }); 
    return valid; 
} 
+0

+1. – Nolo

+0

@Nick Craver, Bu çok eski bir yazı ama bir sorum var. Her bir döngüsünün tamamlanmasından önce bu fonksiyonun "true" değerini döndürme riski var mı? – YahyaE

+1

Kesinlikle sıfır böyle bir risk çünkü .each() tamamlanana kadar, son ifadeye devam etmeyecektir. @YahyaE – K48

13

Böyle yapabilirsiniz: Eğer bunu bulamayan true dönmek istiyorum varsayar

function validate(){ 
    var rv = true; 
    $('input[type=text]').each(function(){ 
     if($(this).val() == "") { 
      rv = false; // Set flag 
      return false; // Stop iterating 
     } 
    }); 
    return rv; 
} 

.

Bu size hiç each kullanmak istemeyen sitautions biri olduğunu görebilirsiniz: seçicinin ve uzunluğunun akıllı kullanımı için

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) 
} 
İlgili konular