jquery - Primefaces:尝试使用 jquery 和 selectBooleanCheckbox 选择所有复选框

标签 jquery checkbox primefaces

我正在尝试使用 primefaces 组件 p:selectBooleanCheckbox 和 jquery 实现全选复选框。

这是我的代码:

<p:selectBooleanCheckbox id="selectAll" onchange="selectAll(this);" itemLabel="select all"/><br/><br/>
<p:selectBooleanCheckbox id="test1" itemLabel="test1"/><br/>
<p:selectBooleanCheckbox id="test2" itemLabel="test2"/><br/>
<p:selectBooleanCheckbox id="test3" itemLabel="test3"/><br/>
<p:selectBooleanCheckbox id="test4" itemLabel="test4"/><br/>
<input type="checkbox" id="test5">test5</input><br/>
<input type="checkbox" id="test6">test6</input><br/>
<input type="checkbox" id="test7">test7</input><br/>

以及 selectAll javascript 函数:

function selectAll(checkAll) {
    var checked = checkAll.checked;      
    $(':checkbox[id*="test"]').attr('checked', checked);
}

当我选择 selectAll 复选框时,仅选中复选框 5,6 和 7。 使用 WebDeveloper,我可以验证生成的代码,并且似乎其他复选框也被选中(checked =“checked”),尽管它们没有显示为选中。

我也尝试过:

function selectAll(checkAll) {
    var checked = checkAll.checked;                  
    $(':checkbox[id*="test"]').click();
}

但它不起作用。

我只添加了这些 HTML 复选框来测试我的 jquery。只是为了确保它正常工作。

我正在使用 Primefaces 3.0 和 Tomcat 6.0.20。

有人可以帮助我吗?提前致谢。

最佳答案

一旦选中复选框本身,问题就出在 primefaces 使用的样式类上。

为了解决这个问题,我必须更改 javascript 函数。现在看起来像这样:

function selectAll(checkAll) {
    var checked = checkAll.checked; 

    //to change the checked attribute                
    $(':checkbox[id*="test"]').attr('checked', checked);

    if (checked) {
        $('div[id*="test"] > div').each(function() {
            $(this).addClass('ui-state-active');
            $(this).children('span').addClass('ui-icon ui-icon-check');
        });
    } else {
        $('div[id*="test"] > div').each(function() {
            $(this).removeClass('ui-state-active');
            $(this).children('span').removeClass('ui-icon ui-icon-check');
        });
    }
}

这只是显示复选框选择的问题。在这种情况下,由于我使用的是primefaces,所以这完全是风格问题。

感谢那些试图帮助我的人。

关于jquery - Primefaces:尝试使用 jquery 和 selectBooleanCheckbox 选择所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850309/

相关文章:

java - primefaces日程安排有问题

javascript - Dropkick - 选择问题数组

javascript - 添加复选框以自动完成-jQuery

javascript - 概括一个专门的 JQuery 函数

jsf - 在应用服务器上限时存储 PDF 并提供下载

internet-explorer - p :commandButton onclick function not invoked in Internet Explorer

javascript - 修复了与其父级相关的 div

javascript - 使用 jQuery 交换选择列表中的值

javascript - 具有水平和垂直滚动主体的固定表头

javascript - 如何在复选框单击时停止事件冒泡