2

私は自分のアプリケーションで JSF ajax (=\ を変更することはできません) を使用しており、ユーザーからのアクションを待つ必要があります。つまり、ajax メソッドを呼び出す前に、カスタム ダイアログを使用してページ内のすべての変更を元に戻したいかどうかをユーザーに尋ねる必要があります。彼が先に進んで元に戻したい場合は、ajax で Java メソッドを呼び出しますが、そうでない場合は ajax を呼び出す必要はありません。

もっと具体的に言ってみましょう:

これは、私のヒュージ ページの元に戻すボタンのコードです。

<h:commandButton value="#{msg.revertBtn}" accesskey="R" styleClass="actionButton" action="#{styleController.revertChanges}">

    <f:ajax execute="@this" onstart="return method();" render="styleCcFormtyleCcTable">

</h:commandButton>

ajax を呼び出す前に、JavaScript 関数を実行します。method()

カスタム確認ダイアログでユーザーがクリックするかボタンmethod()をクリックしてから true または false を返すまで、ユーザーを立ち往生させる必要があります。YesNow

それを解決する方法はありますか?

4

2 に答える 2

2

onclickボタンのデフォルト アクションをブロックするために、代わりにボタンのハンドラーtrueをフックする必要がfalseあります。ajax リクエストが実行されると、それをブロックするには遅すぎます。

JavaScript の組み込み関数を使用したキックオフの例を次に示しconfirm()ます。

<h:commandButton ... onclick="return confirm('Are you sure?')">
    <f:ajax execute="@this" render="styleCcFormtyleCcTable" />
</h:commandButton>
于 2012-05-29T23:00:29.563 に答える
0

私はそれを機能させるために大きな回避策を講じたので、私に同意しない人がいることを知っています.

私がしたことは:

カスタム確認ダイアログを作成しましたが、ユーザーの返信を格納する変数があります。その後、ユーザーがボタンをクリックするたびに、そこに保存されます。

そのため、ボタンに変数をチェックするクリック関数を追加し、応答がある場合は何かを実行しますが、カスタムダイアログを呼び出しません。

そして、カスタムダイアログでボタンを「クリック」していますが、返信が表示されます。その後、変数を消去することを確認する必要があります。

それだけ。それを 2 日間行う oO のコードが必要な場合はお知らせください。

于 2012-06-05T23:51:21.073 に答える