1

2 つのラジオ ボタンと 2 つの対応するテキスト ボックスを含む Web ページがあります。どちらも単一のラジオ グループの一部です。このページには送信ボタンもあります。

o ラジオ 1 [テキスト ボックス 1] o ラジオ 2 [テキスト ボックス 2]

|提出|

Radio1 を選択して送信をクリックすると、エラーが発生した場合に検証エラー メッセージが表示されます。これらは、すべてのフィールドのページの上部に表示されるグローバル エラー メッセージです。のvalidatorMessage属性を使用しました

<h:inputText> 

エラーを表示し、

<f:validateRegex pattern="(^[0-9]{1,15}$)" /> 

エラーを検証します。また、私は持っています

<h:messages class="errors"  style="color:red;" layout="table" />

xhtml ページの上部にあります。

私の要件は、Radio2 をクリックしたときに、Radio1 のエラー メッセージが表示されないようにすることです。これは、Radio2 とは関係がないためです。逆も同様です。

Radio2 が選択されるたびに AJax または JS を使用して Radio1 のエラー メッセージをクリアする方法はありますか?

無線コードで更新:

<t:selectOneRadio id="options" value="#{reqscope.selectedRadio}" layout="spread">
    <f:selectItem itemValue="radio1" itemLabel="Policy number" />
    <f:selectItem itemValue="radio2" itemLabel="Customer ID" />    
</t:selectOneRadio>

<t:radio for="options" index="0"  name="search_by1" onclick="searchSelected()">
4

2 に答える 2

2

を使用して、処理する必要がある (したがって、変換および検証する) フィールドのみ<f:ajax execute>を指定できます。を使用して、ajax で更新する必要があるコンポーネント (この場合はメッセージ コンポーネント) を指定して、新しいメッセージで更新されるようにすることができます。<f:ajax render>

<f:validateRegex>テキスト ボックスでは、属性disabledを使用して、選択したラジオ ボタンの値が期待値と一致しない場合に検証を無効にすることができます。

次の例を実行する必要があります。

<h:messages id="messages" ... />

<h:form id="form">
    ...
    <t:selectOneRadio id="options" ...>
        ...
        <f:ajax execute="@this textbox1 textbox2" render=":messages" />
    </t:selectOneRadio>
    ...
    <h:inputText id="textbox1" ...>
        <f:validateRegex ... disabled="#{param['form:options'] != 'radio1'}" />
    </h:inputText>
    <h:inputText id="textbox2" ...>
        <f:validateRegex ... disabled="#{param['form:options'] != 'radio2'}" />
    </h:inputText>
    ...
</h:form>
于 2013-08-08T15:01:29.610 に答える
0

Prime Facesで使用できる

次のリンクで例を見ることができます http://www.primefaces.org/showcase/ui/misc/resetInput.xhtml

于 2016-06-08T21:11:16.433 に答える