我是jquery的新手。我的项目调用了primefaces 4.0,jsf 2.1(xhtml)。
我有一个select all boolean复选框,以及一个selectmanycheckbox,它使用从服务器端检索的列表填充。
<p:tab title="Service Status" >
<p:selectBooleanCheckbox itemLabel="Select All"
value="#{myBean.selectAllStatus}"
id="selectAllStatus" style="margin-left:4px;" onchange="selectAllStatus(this);" >
</p:selectBooleanCheckbox>
<p:selectManyCheckbox
value="#{myBean.serviceStatusFilterList}"
layout="pageDirection" id="empListSub">
<f:param name="tabValue" value="1" />
<f:selectItems value="#{serviceCalendarViewBean.serviceStatusList}" var="status"
itemLabel="#{status.title}" itemValue="#{status.id}"/>
</p:selectManyCheckbox>
</p:tab>
</p:accordion>
单击“全选”复选框时调用的Javascript是
function selectAllStatus(element)
{
var selectAll = element.checked;
$( 'input[id^="'accord:empListSub'"]' ).each(function(){
this.checked=selectAll;
});
}
当我取消选中'全选'复选框时,我需要取消选中f:selectitems生成的所有复选框,反之亦然。
更改事件的javascript中的以下代码在控制台中给了我一个错误。 错误是“意外的语法错误;”
$( 'input[id^="'accord:empListSub'"]' ).each(function(){
this.checked=selectAll;
});
在网络中,javascript代码显示为
$( 'input[id^="'accord:empListSub'"]' ).each(function(){
this.checked=selectAll;
});
我尝试删除没用的双引号。
所以有人可以帮助我。
在jquery中,当我取消选中'全选'复选框时,我需要取消选中f:selectitems生成的所有复选框,反之亦然。
当我检查或取消选中任何一个f:selectItems时,它还必须调用另一个javascript函数。
我该怎么做?
答案 0 :(得分:1)
问题出在组件引用
上$( 'input[name^=accord\\:empListSub]' ).each(function(i,obj){
$('div .ui-chkbox-box').addClass('ui-state-active');
$('span .ui-chkbox-icon').addClass('ui-chkbox-icon ui-icon ui-icon-check ui-c');
);
答案 1 :(得分:0)
尝试在jQuery中使用 prop() 来设置已检查的属性
$( 'input[id^='+accord:empListSub+']' ).prop("checked",selectAll);