命令按钮检查一些必填字段但不是全部
CommandButton that checks some required fields but not all of them
我正在尝试做类似的事情:
<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"
处验证整个表单(对于 input1
和 input2
,这工作正常)。
但是,当我点击 doSomething
按钮时,我希望它只检查 input2
是否被填充,忽略 input1
的条件(换句话说:它应该'如果 input2
为空则不工作,但即使 input1
为空也应该工作)。有办法吗? (而且我不能为此使用托管 Bean!)
仅将 immediate="true" 属性添加到面板内的两个组件。或者您也可以使用 Ajax 作为面板内的按钮,仅发送面板内容。
注意 1:面板内的输入要求 value
属性。
注意 2:还包括两个按钮的 update
属性。即:
update="@form"
注意 3:您还可以在表单中包含 <p:messages/>
元素。
像这样使用 <p:commandButton>
的 process
属性
<p:commandButton id="doSomething" value="something" action="#{mb.doSomething}" process="input2"/>
这样它只会在点击时验证 input2。根据 Primefaces 文档:
process | null | String | Component(s) to process partially instead of
whole view.
我正在尝试做类似的事情:
<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"
处验证整个表单(对于 input1
和 input2
,这工作正常)。
但是,当我点击 doSomething
按钮时,我希望它只检查 input2
是否被填充,忽略 input1
的条件(换句话说:它应该'如果 input2
为空则不工作,但即使 input1
为空也应该工作)。有办法吗? (而且我不能为此使用托管 Bean!)
仅将 immediate="true" 属性添加到面板内的两个组件。或者您也可以使用 Ajax 作为面板内的按钮,仅发送面板内容。
注意 1:面板内的输入要求 value
属性。
注意 2:还包括两个按钮的 update
属性。即:
update="@form"
注意 3:您还可以在表单中包含 <p:messages/>
元素。
像这样使用 <p:commandButton>
的 process
属性
<p:commandButton id="doSomething" value="something" action="#{mb.doSomething}" process="input2"/>
这样它只会在点击时验证 input2。根据 Primefaces 文档:
process | null | String | Component(s) to process partially instead of whole view.