0

标题使这看起来很简单,我尝试用谷歌搜索,但我什至不确定如何表达我正在尝试做的事情。

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

<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在允许表单提交之前确保至少 1label和 1不为空/null。file

我尝试过这个,但它失败了

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

1 回答 1

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

于 2013-06-18T14:27:43.523 回答