0

テキストエリアと複数のボタンがある JSF フォームを使用しています。テキスト領域については、 f:validator を使用して検証を行っています

<f:validator validatorId="myValidator" />
<a4j:support event="onsubmit" ajaxSingle="true" process="textarea1" />

バリデーターは期待どおりに機能しています。ページに複数の送信ボタンがあり、特定のボタンでのみ検証を行い、残りのボタンではバリデーターを無視する必要があります。

とにかく、特定の送信ボタンだけでバリデーターを制限することはありますか? ありがとう。

4

2 に答える 2

3

属性を使用できdisabledます。

<f:validator validatorId="myValidator" disabled="#{empty param['formId:buttonId']}" />

formIdあなたのIDはどこにあり<h:form>buttonIdは検証をトリガーする唯一のボタンであるはずのボタンのIDです。

于 2012-06-27T10:48:46.500 に答える
2

textarea他のボタンをクリックしたときにもサーバーに値を送信したいと思います(したがって、process属性をいじる意味はありません)

immediate="true"他のボタンに追加するのはどうですか?

そうすれば、検証をスキップし、送信ボタンなしimmediate="true"で期待どおりに検証を行います。

または

この記事JSF 2 - Conditionally Skip Validationには別の回避策があるようです

何かのようなもの

<h:commandButton action="#{bean.someMethod"} value="Submit2">
   <f:param name="skipValidation" value="true"/>
</h:commandButton>

そしてvalidateバリデーターのメソッド内で属性をチェックしskipValidationます(記事の詳細な説明を探してください...)

于 2012-06-27T09:25:02.670 に答える