2011-02-02 83 views
3

我正在使用jQuery以及jQuery验证插件。使用jQuery在表中选择空行

我有一张表格,第一列之后的每列包含一个表格字段,如复选框,文本字段等。我使用<th>作为标题,因此只有<tr>元素具有表单字段。

如何选择其整个表单域为空的所有行?通过清空,我正在谈论一个未定义值的文本字段,一个未选中的复选框,一个没有选中任何内容的选择字段等等。如果它至少有一个非空的表单字段,我不应该选择一行。

这可能吗?有人可以澄清这一点吗?

回答

4

这不应该是使用.filter()太难:

$('tr').filter(function(){ 
    return !$(this).find('input:text:not(:empty), textarea:not(:empty), input:checked, option:selected').length; 
}); 

此搜索tr找到

  • 非空的文本输入
  • 非空的文本域
  • 选中的复选框/无线电盒
  • 选定的选项元素

并且如果发现有返回,则返回假(即,将它们从选择中移除)。