使用jquery在数据表内更新primefaces命令按钮

时间:2013-11-14 00:38:41

标签: javascript jquery jsf primefaces

我想将jquery的click函数添加到数据表行内的commandButtons,此按钮显示一个对话框,其中包含我想用javascript构建的内容。但是javascript中定义的函数甚至都没有被调用。

我有这个:

<p:datatable id="tbl1">
<p:commandButton id="button1" onclick="dlg.show()">
</p:commandButton>
</p:datatable>

在我的javascript中

$("#form:tbl1:0:button1").click(function(){
 //...some js functionality to show on the dialog
});

任何建议都将非常感激

每个人都度过愉快的一天

1 个答案:

答案 0 :(得分:5)

jQuery使用CSS selector语法在HTML DOM树中选择元素。冒号:是CSS选择器语法中的一个特殊字符,表示伪选择器的开头,如:hover:active:disabled:first-child等。 ,你在这里使用它作为元素ID的一部分,而不是伪选择器。在这种情况下,您需要使用(双)反斜杠转义冒号。

$("#form\\:tbl1\\:0\\:button1")

或者,使用普通JS document.getElementById()并将其传递给jQuery,它只使用普通元素ID,而不是CSS选择器,因此您不需要转义它:

$(document.getElementById("form:tbl1:0:button1"))

或者更好的是,给它一个样式类:

<p:commandButton ... styleClass="some-button" />

这样你就可以做到

$(".some-button")

并能够在其他按钮上重复使用。