1

複数のフィールド (名前、姓など) とデータテーブルを含むフォームがあります。Datatable は、バッキング Bean にアドレスを格納する専用です。人は複数の住所を持つことができるので、次のようにボタンを追加します。

<a4j:commandButton action="#{bean.addAddressRow}" value="Add address" reRender="addresses" />

ここで、「アドレス」はデータテーブルの ID です。ページを更新する必要がないため、a4j を使用します。z

私がやりたいことは、このボタンが押されたときに住所フィールドを除くフォーム全体の検証をスキップすることです。そのため、以前のアドレスがすべて正しく入力されていれば、ユーザーはもう 1 つのアドレスを追加できます。他のフィールドは検証しないでください。

することは可能ですか?

4

1 に答える 1

1

アドレス テーブルとcommandButton<a4j:region>タグでラップし、属性renderRegionOnlyを に設定しますtrue
次の例を見てください。ここでは、最初のボタンを押したときに、最後の 2 つのテキスト ボックス(txt2 と txt3)のみが検証されます。2 番目のボタンを押すと、3 つのテキスト ボックスがすべて検証されます。

<h:form>
  <h:inputText required="true" id="txt1"/>
  <rich:message for="txt1" style="color:red"/>

  <a4j:region renderRegionOnly="true">
      <h:inputText required="true" id="txt2"/>
      <rich:message for="txt2" style="color:red"/>
      <h:inputText required="true" id="txt3"/>
      <rich:message for="txt3" style="color:red"/>
      <a4j:commandButton value="Ok1" />
  </a4j:region>

  <a4j:commandButton value="Ok2" />
</h:form>
于 2012-11-14T05:20:51.103 に答える