2013-02-18 24 views
1

我有一个200行的表,它被分页成20页(每页10行)。每一行都有一个复选框。我使用jPage,所以所有的表格仍然存在,只能通过“display:none”隐藏。我已经写了一个函数来选择所有复选框(附带以前的一些条件),像这样:Javascript:如何使复选框在屏幕上检查

$('#masterCbox').click(function() { 
    if($(this).is(':checked')) { 
    $('.childCbox').prop('checked', false); 
    $('.select-y').children('.childtd').children('.childCbox').prop('checked', true); 
    } else 
    $('.childCbox').prop('checked', false); 
}); 

这将检查是具有类的所有行=“选择-Y”。

但是,只需要勾选屏幕上的复选框即可(复选框属于显示页面的行)。我该怎么做到这一点?

+0

你能告诉我们你是如何制作其它的TA ble作为隐藏我的意思是这个'display:none'在哪里应用 – asifsid88 2013-02-18 17:08:58

+0

修改你的选择器,以便它检查适当的'parent'的'display' CSS属性,并且不会选择这些属性。 – marekful 2013-02-18 17:09:47

+0

您可以确保隐藏页面中的所有复选框都将“禁用”标志设置为“true”,以便在提交表单时不会发布它们。 – Pointy 2013-02-18 17:10:11

回答

1

您可以在JQuery中使用:visible选择器来查看是否有可见的东西。

1

检查,如果它是可见的,只是检查的所有children()的东西,如果它有一个父某处匹配.select-y代替:

$('#masterCbox').click(function() { 
    if(this.checked) { 
     $('.childCbox').prop('checked', false).filter(function() { 
      return $(this).is(':visible') && $(this).closest('.select-y').length; 
     }).prop('checked', true); 
    } else { 
     $('.childCbox').prop('checked', false); 
    } 
}); 
+0

这很好用。 – vCube 2013-02-20 07:47:52

0

您可以应用过滤器来检查,如果你的行是可见的:

$('.select-y').is(':visible').children('.childtd').children('.childCbox').prop('checked', true); 
0

你可以这样做:

$('.select-y .childtd').children('.childCbox:visible').prop('checked', true); 
相关问题