2013-08-29 22 views
0

我有3個具有不同ID的元素。點擊一個提交按鈕,我應該驗證是否有任何一個字段填充了數據。如果沒有填充,則應向用戶顯示適當的消息。如果其中任何一個填寫完畢,應提交表格。JQuery多選符AND運算符

雖然它們屬於同一個類,但我不能使用類選擇器,因爲有其他字段具有此類驗證不適用的相同類。

我做了以下但不工作

if($("#id1,#id2,#id3").val() == "") - >>這個使用或操作者與我尋找,並

if($("#id1#id2#id3").val() == "") - >不起作用

if($("#id1[#id2][#id3]").val() == "") - >這兩者都不是

+1

的問題是你的理解[.VAL()](http://api.jquery.com/val/),其獲取匹配元素集合中* first元素的當前值。 –

+0

我正在尋找所有領域的驗證。而不是檢查每個字段'$(「#id1」)。val()==「」'&& $(「#id2」)。val()==「」',我覺得最好使用多個選擇器 – Prmk

回答

1

調查jQuery add(),你也需要遍歷所有這些來檢查每一個,所以你的例子:

var valid = true; 
$("#id1").add("#id2").add("id3").each(function() { 
    if ($(this).val() == "") 
     valid = false; 
}); 
+0

謝謝。我能夠通過修改一些'var count = new Number(0)來獲得所需的結果; ($(this).val()==「」) ((##) \t \t count ++; \t}); \t if(count == 3) \t { \t \t alert(「請輸入一些數據。」); \t \t return false; \t} ' – Prmk

2

個人而言,我會用each方法

var $empty = false; 

$("#id1,#id2,#id3").each(function(i, e){ 
    if ($(e).val() == '') $empty = true; 
}); 

if ($empty) 
{ 
    alert("Please enter some data."); 
} 
+1

只是想我會補充說我是一個PHP的傢伙,這就是爲什麼我的變量在JS開始與$我相信是皺眉,但無論你不必使用它。 – Dale