0

私のJSFページには、inputText、outputText、submitボタンのある非表示のフォームがあります。特定のイベントでinputTextを埋め、ボタンをクリックするスクリプトを使用しています。このボタンは、いくつかのアクションを実行してからoutputTextの値を設定する必要があるバッキングBeanのメソッドを呼び出します。これを行うには、UIOutputコンポーネントを見つけて、その値を設定します。私のJavaScriptでは、ボタンがクリックされた後に他のアクションを実行する必要がありますが、問題は、アクションが完了してoutputTextに戻り値が入力されるまでに時間がかかる場合があることです。そのため、JavaScriptの次のアクションは正しい値を読み取りません。値が更新された後にのみアクションを実行するように、outputTextに変更イベントを追加することを考えましたが、これと同じ問題がありますJSイベント:テキスト入力の値変更イベントをフックします

4

1 に答える 1

2

したがって、 を使用している場合は、AJAX 要求の完了後に実行される JS コードに属性をa4j:commandButton使用できます。oncomplete

h:commandButtonをとともに使用しているためf:ajax、その方法は f:ajax 属性を使用し、次のoneventように成功したかどうかを確認することです。

<script>
    function doWhatever(e){
        if(e.status == 'success'){
            doYourThingHere();
        }
    }
</script>
<h:commandButton action="#{someMB.someAction}">
    <f:ajax ... onevent="doWhatever" />
</h:commandButton>

Richfaces を使用する場合は、a4j:ajaxコンポーネントを確認することをお勧めします。この質問を参照してください。

更新:リクエストが成功しなかったと仮定した誤った else を削除しました。status 属性のその他の意味については、この質問への回答を参照してください。

于 2012-07-04T17:51:55.957 に答える