从另一种形式的按钮触发表单验证

时间:2012-12-28 18:02:59

标签: jsf jsf-2 primefaces

我在Glassfish上使用Primefaces和JSF-2,尝试交叉验证表单。 这是场景:

<h:form id="form1">
    <p:messages id="msgs" showDetail="false" autoUpdate="true" closable="true" />
    some input fields with validation
</h:form>

<h:form id="form_upload">
    some upload fields that dont trigger validations
</h:form>

<h:form id="buts">
    <p:commandButton id="save" value="Save" action="#{bean.save}"
        update=":form1 :form1:msgs" process=":form1">
</h:form>

我希望按钮保存以触发form1上的验证,这可能吗?

2 个答案:

答案 0 :(得分:1)

使用属性process并指定要在服务器上处理的每个组件:

<p:commandButton id="save" value="Save" action="#{bean.save}"
     process=":form1 :form_upload" update=":form1" />

不要忘记将p:messages放在:form1的某处,否则您也想要更新它。

详细了解AJAX on JSF here

答案 1 :(得分:0)

你可以使用PrimeFaces&#39; <p:remoteCommand>

<h:form id="form1">        
    some input fields with validation
    <p:remoteCommand name="rc" update="@form" action="#{bean.save}" />
</h:form>

示例远程呼叫:

<h:form id="buts">
   <p:commandButton value="Save" type="button" onclick="rc()" />
</h>