我有一个组primefaces复选框(p:selectBooleanCheckbox),每个复选框都有一个已定义的widgetVar(widgetVar =“rowCheckbox_0”,widgetVar =“rowCheckbox_1”,widgetVar =“rowCheckbox_2”,..)。 我想获得对它们的引用并用JQuery检查它们,但我是新手,我不知道该怎么做。
这是我为获取复选框引用而编写的函数:
function selectAllCheckbox() {
var test = $(PrimeFaces.widgets.rowCheckbox_0);
if (test.length){
alert('Element found ');
}
else {
alert('Element NOT found');
}
}
如果我执行代码,警报会告诉我“找到元素”,所以我想我的方法是正确的。 现在我不知道如何:
1)对元素“test”执行.check()函数(应该引用第一个复选框)。
2)获取一个包含所有复选框引用的数组(以“rowCheckbox_”开头的“$ PrimeFaces.widgets。”) 有人可以帮帮我吗?
答案 0 :(得分:3)
您可以遍历当前页面小部件并测试当前元素是否是PrimeFaces.widget.SelectBooleanCheckbox
的实例
for (var propertyName in PrimeFaces.widgets) {
if (PrimeFaces.widgets[propertyName] instanceof PrimeFaces.widget.SelectBooleanCheckbox) {
PrimeFaces.widgets[propertyName].check();// to check
PrimeFaces.widgets[propertyName].jq; //jQuery reference
}
}
此后,您可以检查第一个出现的元素,然后构建数组。
答案 1 :(得分:0)
您可以找出分配给selectBooleanCheckbox的widgetVar。它通常是以下字符串的组合。
"widget_" + <form id> + "_form_" + <selectBooleanCheckbox id>
注意:在我的情况下,ID有破折号。破折号转换为下划线。例如,您有:
<h:form id='my-page'> and <p:selectBooleanCheckbox id='the-checkboxes'>
widgetVar将是:
"widget_my_page_form_the_checkboxes"
我会查看您的页面来源以进行验证。我相信widgetVar字符串的格式不同,具体取决于您使用的PrimeFaces的版本。我正在使用PrimeFaces6.1。
现在获取对象,然后点击它......
P('widget_my_page_form_the_checkbox').click();