对Jquery / Primefaces使用相同的按钮事件

时间:2015-02-18 20:28:02

标签: jquery primefaces

我在primefaces中有一个命令按钮,用于更新隐藏的输入,如下所示:

 <html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Wizard Invoice </title>
</h:head>

<h:outputScript library="Scripts" name="stepsWizard.js" />

<h:body>
<h:form>

<p:commandButton id="IdA" value="test" action="#{invoiceWizardBean.someMethod}" update="hid"/>
<h:inputHidden id="hid" type="hidden" name="name1" value="#{invoiceWizardBean.somevalue}" ></h:inputHidden>

<input id="IdB" type="button" value="submit" />  


</h:form>
</h:body>
</html>

单击按钮IdA后,我的隐藏输入的值在DOM中正确更新。(不使用客户端中的任何Jquery),但是如果添加使用相同按钮执行额外操作的方法,则值不再正确

jQuery(function($) {
var buttonNext = $("#j_idt6\\:IdA");
buttonNext.click(function(){
    var valueHidden = $("#j_idt6\\:hid")[0].value;
    console.log(valueHidden);
    // valueHidden has the previous value. It is not updated !!
    // Do some operations based in valueHidden value
});
});

如果我更改了我的jquery函数并使用Button IdB,则valueHidden是正确的。

使用相同的按钮在客户端进行操作非常重要。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您应该使用oncomplete的{​​{1}},

类似这样的事情

<p:commandButton

将客户端逻辑放入名为myJsFunc

的javascript函数中