检查jQuery中相同的字段是否为空

时间:2013-06-18 14:26:40

标签: jquery validation jquery-selectors

标题使这看起来很简单,我试着用Google搜索,但我甚至不确定如何说出我正在尝试做的事情。

我有一组看起来像这样的字段

<tr>
   <td><strong>File Label:</strong></td>
   <td><input type="text" name="label[]" id="label" class="label" /></td>
   <td><strong>Student File (pdf):</strong></td>
   <td><input type="file" name="file[]" id="file" class="file" /></td>
</tr>
<tr>
   <td><strong>File Label:</strong></td>
   <td><input type="text" name="label[]" id="label" class="label" /></td>
   <td><strong>Student File (pdf):</strong></td>
   <td><input type="file" name="file[]" id="file" class="file" /></td>
</tr>
<tr>
   <td><strong>File Label:</strong></td>
   <td><input type="text" name="label[]" id="label" class="label" /></td>
   <td><strong>Student File (pdf):</strong></td>
   <td><input type="file" name="file[]" id="file" class="file" /></td>
</tr>

如您所见,label[]file[]重复。

在允许表单提交之前,如何使用jQuery确保至少1 label和1 file不为空/ null。

我试过了,但失败了

$('.label').each(function(){
   if($(this).val() == '')
   {
      alert('Stop Form');
   }
   else
   {
      alert('Submit Form');
   }
});

1 个答案:

答案 0 :(得分:0)

您可以使用

$('[name="label[]"]').filter(function(){ return $(this).val() }).length >0

如果你想检查几个名字/文件(即在同一个tr中),那么你可以做

var notEmptyTr = $('tr').filter(function(){
    return $('[name="label[]"]', this).val() && $('[name="file[]"]', this).val()
});

然后检查notEmptyTr.length>0