你好,我有类似的东西:
<h:form id="firstForm">
here i have some input fields
</h:form>
<h:form id="secondForm">
here i have some input fields
</h:form>
<h:form id="thirdForm">
<p:commandButton id="completeOne" type="button"
value="Complete">
</p:commandButton>
</h:form>
我的问题是,按完成按钮我可以更新表单:firstForm和secondForm
答案 0 :(得分:2)
要通过AJAX请求指示应更新哪些组件(即接收新的HTML),有一个恰当命名的属性update
: - )。
在您的情况下,如果您希望CommandButton更新firstForm
和secondForm
,请使用:
<p:commandButton id="completeOne"
type="button" value="Complete" update="firstForm secondForm">
</p:commandButton>
PrimeFaces文档中描述了这一点:
AJAX和非AJAX
CommandButton具有内置的ajax功能,ajax提交是 默认情况下启用并使用
ajax
属性进行配置。什么时候 ajax属性设置为false,表单提交为常规完整 页面刷新。
update
属性用于部分更新其他属性 收到ajax响应后的组件。更新 attribute采用逗号或空格分隔的JSF组件列表 要更新的ID。基本上是任何JSF组件,而不仅仅是PrimeFaces 应该使用Ajax响应更新组件。
update
属性的默认值为@form
,表示只更新包含该组件的表单。在你的情况下,thirdForm
,
这还不够。
注意:的
普通JSF(即没有PrimeFaces)具有f:ajax
tag的类似属性,表示要更新哪些组件。但是,对于f:ajax
,它被称为render
,而不是update
。很容易混淆两者,特别是如果你混合普通的JSF和PrimeFaces标签。
答案 1 :(得分:-1)
您可以使用它的ID来选择表单。因此,例如在JQuery中,这将是:
$( "#completeOne" ).click(function() {
$("#firstForm").doSomethingWithIt
$("#secondForm").doSomethingWithIt
});