我正在使用PrimeFaces commandButton
发出Ajax请求
我应该设置update
属性,以便更新整个父表单,除了某些特定组件(假设我用styleClass="noupdate"
标记了它们)。
我正在使用PrimeFaces 3.5,所以我认为PrimeFaces JQuery选择器可能有所帮助
我试过这样的事情:
<!-- ...some inputs/labels to be updated here... -->
<p:overlayPanel styleClass="noupdate">
<!-- ...some inputs/labels to be updated here... -->
<p:commandButton id="btnDoIt" value="Do it"
update="@(this.closest('form') :not(.noupdate))"/>
</p:overlayPanel>
但它不起作用(我得到一个JavaScript语法错误)
有没有办法得到我需要的东西?
请注意:
1)表单ID未知,因为该按钮是复合组件的一部分,可以由不同视图中的任何表单托管
2)在我的例子中,<p:overlayPanel>
本身不得更新,但任何后代组件都不能更新
3)视图中有多个表单,我应该只处理“当前”表单。
提前感谢任何人都可以帮助我。
答案 0 :(得分:3)
PrimeFaces selectors中没有this
这样的内容。在PrimeFaces选择器中肯定没有像$.closest()
这样的jQuery函数。它只是一个纯jQuery-compatible CSS selector,而不是一些JavaScript代码。
<p:commandButton ... update="@(form :not(.noupdate))"/>