0

私のアプリケーションには、以下のようないくつかのアイテムを表示する SelecOneMenu があります。

<h:selectOneMenu id="cmbInput" value="#{myBean.val}" required="true" requiredMessage="Some Message">
            <f:selectItem itemLabel="Please select" noSelectionOption="true" />
            <f:selectItems value="#{myBean.items}" />
            <f:ajax event="valueChange" render="myPanel"/>
            <f:ajax listener="#{myBean.myListener}"/>            
</h:selectOneMenu>

基本的に、ユーザーがアイテムを選択するたびに、以下のようないくつかの入力フィールドを持つパネルが下にレンダリングされます..

<h:panelGroup id="myPanel" rendered="#{myBean.someFlag}">
   <h:inputText id="input1" value="#{myBean.someVal}" required="true">
</h:panelGroup>

また、ユーザーを次のページに移動させる「次へ」ボタンがあります。

私が直面している問題は、ユーザーがドロップダウンから何かを選択し、パネルがレンダリングされる前に次のボタンをクリックすると、次のページに移動することです。しかし、そのパネルには入力が必要なフィールドが含まれているため、それを防ぎたいので、この場合は次をクリックすると検証エラーがスローされます。

4

2 に答える 2

0

あなたの場合、 JQuery Validate プラグインが最適です。

于 2012-07-20T04:46:13.370 に答える
0

あなたができることはほとんどありません

  1. Loading... の画像を表示して、ユーザーが何かが起こっていることを認識できるようにします。
  2. Loading... image とともに jQuery Block Ui Plugin を利用できます。
  3. ビューが更新されるまで、選択が行われた直後にhtml要素が存在しないため、Javascript検証が機能するとは思えません。このウィンドウ中にユーザーは次をクリックできます。html要素の存在とjs検証を確認するか、サーバー側で実行できます検証。

お役に立てれば.....

于 2012-07-20T05:05:58.633 に答える