2011-10-09 106 views
0

我想檢查在html代碼中是否有類.required_selectbox運行函數required_selectbox()以及如果在html代碼中有.required類運行函數required_valid(),提交後怎麼樣?isset in jQuery

function required_valid() { 
    $('.required').each(function() { 
     if (!$(this).val()) { 
      //var cssObj=; 
      $(this).css("background", "#ffc4c4"); 
      result = false; 
     } else { 
      $(this).css("background", "#FFFFEC"); 
      result = true; 
     } 
     $(this).keyup(function() { 
      $(this).css("background", "#FFFFEC"); 
     }) 
    }); 
    return result; 
} 

function required_selectbox() { 
    $('.required_selectbox').each(function() { 
     if (!$(this).val()) { 
      //var cssObj=; 
      $(this).css("background", "#ffc4c4"); 
      result = false; 
     } else { 
      result = true; 
     } 

    }); 
    return result; 
} 
$('.submit').submit(function() { 
    //alert('hello'); 
    var passed = true; 
    passed = required_selectbox() && passed; 
    passed = required_valid() && passed; 
    if (!passed) { 
     return false; 
    } 
}); 
+0

不要忘了'var'關鍵字,它缺少其中分配給'result'變量多次在你的代碼。總是將變量聲明在正確的範圍內,否則它們將泄漏到全局範圍中。 –

+1

您對結果變量的使用沒有任何意義。它被設置在一個循環中。 'required_selectbox'的返回值應該表示什麼?無論選擇框是否爲瓦列,還是_any_選擇框有效? – Eric

+0

嘗試使用(!!)double not operator,找出使用它的一些解決方案 –

回答

1

一個簡單的方法是運行這些功能即使元素是不是有。由於沒有元素會被發現,到each()呼叫會做什麼,所以所有的需要默認情況下有result變量設置爲true

function required_selectbox() { 
    var result = true; // <--- 
    $('.required_selectbox').each(function() { 
     if (!$(this).val()) { 
      //var cssObj=; 
      $(this).css("background", "#ffc4c4"); 
      result = false; 
     } else { 
      result = true; 
     } 
    }); 
    return result; 
} 

此外,它看起來就像你可能不希望else聲明在那裏,所以你可能想要刪除它。

0

我不是你想肯定的帽子,但 -

$('.required_selectbox').length 

會讓你知道,如果有您的文檔中.required_selectbox類的任何元素。那麼你可以做一個類似的事情required_valid

0
function required_valid() { 
    var required = $('.required'); 
    required.css("background", "#FFFFEC"); 

    //Find any empty elements, and add the red style 
    var empty = required.filter(function() { 
     return $(this).val() == ''; 
    }); 
    empty.css("background", "#ffc4c4"); 

    //Did we find any empty elements? 
    return empty.length > 0; 
} 

function required_selectbox() { 
    var required = $('.required_selectbox'); 
    required.css("background", "#FFFFEC"); 

    //Find any empty elements, and add the red style 
    var empty = required.filter(function() { 
     return $(this).val() == ''; 
    }); 
    empty.css("background", "#ffc4c4"); 

    //Did we find any empty elements? 
    return empty.length > 0; 
} 

$('.submit').submit(function() { 
    return required_selectbox() && required_valid(); 
});