CommandButton,它检查一些必需的字段,但不是所有字段

时间:2015-09-23 21:21:31

标签: validation jsf primefaces commandbutton

我正在尝试做类似的事情:

<h:form id="form">
    <p:inputText id="input1" value="#{mb.input}" required="true" /><br />
    <h:panelGroup id="panelGroup"><br />
        <p:inputText id="input2" required="true" /><br />
        <p:commandButton id="doSomething" value="something" action="#{mb.doSomething}" />
    </h:panelGroup><br />
    <p:commandButton id="save" value="Save" action="#{mb.save}" /><br />
</h:form>

以下是我的问题:当我点击save按钮时,我希望整个表单在required="true" input1input2处得到验证,效果很好)。

但是,当我点击doSomething按钮时,我希望仅在input2填充时检查,忽略input1的条件(换句话说:它应该不起作用如果input2为空,但即使input1是,也应该有效。有办法吗? (我不能使用Managed Beans!)

2 个答案:

答案 0 :(得分:2)

使用process这样的<p:commandButton>属性

<p:commandButton id="doSomething" value="something" action="#{mb.doSomething}"  process="input2"/>

这样它只会在点击时验证input2。根据Primefaces文档:

  

流程 | null |字符串|要部分处理的组件而不是   整个观点。

答案 1 :(得分:0)

只有立即=&#34; true&#34;属于面板内的两个组件。或者您也可以使用Ajax作为面板内的按钮,仅发送面板内容。

注1:面板内的输入声明了value属性。

注意2:两个按钮都包含update属性。即:

    update="@form"

注3:您还可以在表单中包含<p:messages/>元素。