代码之家  ›  专栏  ›  技术社区  ›  javatar

在JSF中,我如何理解多个复选框,不管是否选中所有复选框?

  •  2
  • javatar  · 技术社区  · 15 年前

    正如您从上面的标题所了解的,我在每一行中都有一个数据表和复选框。

    我希望在至少选中一个复选框时启用按钮,并在没有选中复选框时禁用按钮(我的意思是所有复选框都未选中)。我可以像选中其中一个复选框一样实现这一点,按钮变为启用。但是,我要做的可逆转的情况是当复选框被取消选中时,当最后一个选中的复选框被取消选中时,按钮必须立即被禁用…

    顺便说一句,我必须在不使用setter方法或backing bean的情况下完成它。 我可以使用jquery或jsfunction、richfaces等来执行它吗?

    因此,我想了解如何在取消选中所有复选框时禁用按钮?

    为了澄清这个案例,下面是我的代码;

    <h:selectBooleanCheckbox id="selectionCheck" 
        onclick="document.getElementById('form1:button1').disabled=false" 
        value="#{_apiV2Product.selectValue}" > 
    </h:selectBooleanCheckbox>
    

    如有任何帮助,我们将不胜感激, 多谢, 巴里

    1 回复  |  直到 15 年前
        1
  •  2
  •   BalusC    15 年前

    您可以使用以下jquery代码段执行此操作:

    $('[id$=selectionCheck]').click(function() {
        $('[id$=button1]').attr('disabled', $('[id$=selectionCheck]:checked').length == 0);
    });
    

    这分配了一个 onclick 对每个复选框起作用,在没有选中任何复选框时禁用按钮。

    这个 [id$=xxx] 选择器选择具有客户端ID的元素 ending 以给定的值。这在JSF/RichFaces中可能很有用,因为它将客户机ID与父级的ID进行了预处理。 UINamingContainer 部件(例如 h:form , h:dataTable , f:subview 等等。