使用JQuery参考PrimeFaces widgetVar

时间:2014-08-27 14:37:44

标签: jquery primefaces

我有一个组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。”) 有人可以帮帮我吗?

2 个答案:

答案 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();