在jQuery / javascript中检查至少一个填充字段

时间:2011-09-14 15:34:31

标签: javascript jquery

Check if atleast one field is not empty in PHP

与这个问题非常相似。这就是如何在javascript中完成的。

单击#submit时,应检查以下其中一个字段:

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

已填满,而非空。如果所有这些都是空的,它应该发出警报(“请填写其中一个字段”)

更新:忘记提及如果字段为0,则不应将其计为已填写。

我该怎么做?我尝试从php复制,但我陷入了foreach循环

3 个答案:

答案 0 :(得分: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,否则为false
  3. 然后我们检查选择的length属性。如果它不是0,则至少有一个元素具有非空值。如果是0,则它们都是空的。
  4. 请参阅:

答案 1 :(得分: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');
}

答案 2 :(得分: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;
    }
});