我在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是正确的。
使用相同的按钮在客户端进行操作非常重要。
有什么想法吗?
答案 0 :(得分:1)
如果我理解正确,您应该使用oncomplete
的{{1}},
类似这样的事情
<p:commandButton
将客户端逻辑放入名为myJsFunc
的javascript函数中