2011-09-14 52 views
0

Check if atleast one field is not empty in PHP檢查jQuery的/ JavaScript的

ATLEAST一個充滿領域非常等於這個問題。這只是如何在JavaScript中做到這一點。

當你點擊#submit應該檢查這些領域的ATLEAST之一:

input[name=weight], input[name=size_1], input[name=size_2], input[name=size_3] 

被填充,而不是空的。如果它們都是空的,它應該提醒(「請填寫其中一個字段」)

更新:忘記提及如果字段爲0,則不應將其計爲填充。

我該怎麼做?我嘗試複製了從PHP,但我得到被困在foreach循環

回答

3

你可以用filter方法做到這一點很容易:

var filledFields = $('input[name=weight], input[name=size_1], input[name=size_2], input[name=size_3]') 
    .filter(function() { 
     return !!this.value && this.value !== '0'; // remove if value is empty or 0, keep otherwise 
    }); 

if (filledFields.length) { 
    // at least one element has a value set 
} else { 
    // no fields have values set 
    alert("Please fill one of the fields") 
} 

這裏做的事情:

  1. 選擇所有要檢查的元素
  2. 運行filter方法:如果返回true,則元素將保留;如果返回false,它會從選擇
    • !!this.valuetrue如果該值是一個非空字符串,否則爲假
  3. 然後檢查選擇的length屬性中刪除。如果它不是0,則至少有一個元素具有非空值。如果是0,它們都是空的。

參見:

+0

我忘了提,如果它的0它不應該被作爲填充 – Karem

+0

@Karem見編輯計數。 – lonesomeday

0
if (!$("input[name=weight]").val() && !$("input[name=size_1]").val() && !$("input[name=size_2]").val() && !$("input[name=size_3]").val()){ 
    alert('Please fill one of the fields'); 
} 
0
$('#my-form').submit(function() { 
    var fields = $(this).find('input[name=weight]', 'input[name=size_1]', 'input[name=size_2]', 'input[name=size_3]'); 
    if (!$fields.filter(function() { return !!$(this).val(); }).length) { 
     alert('Please fill one of the fields'); 
     return false; 
    } 
});