0

次のようなダイアログにフォームがあります。

<p:dialog id="panel" header="Inserisci" widgetVar="dlg1">
  <h:form id="form">
    <p:inputText id="username" value="#{userController.username}" />
    <p:inputText type="password" id="password" value="#{userController.password}" />
    <p:commandButton actionListener="#{userController.insert}" oncomplete="dlg1.hide();" value="Accept" />
  </h:form>
</p:dialog>

このダイアログをクリックすると、「挿入」ボタンが表示されます。Accept ボタンをクリックすると、フォームが Ajax で送信され、検証されます。応答が来ると、フォームが有効かどうかに関係なく、ダイアログが閉じます。クライアント側の oncomplete でフォームが有効かどうかを確認し、有効な場合にのみダイアログを閉じるにはどうすればよいですか? ちなみに、間違ったデータを入力した後に再度ダイアログを開くと、無効なフィールドが赤い枠で囲まれるため、検証は機能します。私はすでに onsuccess で oncomplete を変更しようとしましたが、フォームが有効でない場合でも ajax リクエストがうまく送信されたため、うまくいきませんでした。

4

0 に答える 0