0

confirmOption質問:ページの読み込み時に関数をトリガーせず、ボタンがクリックされたときにのみ関数をトリガーする方法はありますか?

だから私のhtml本体に私は持っています:

<Body>
<a href="#" id="btn_YES" onclick="<%="send('YES','" + rm.getAction ("YES") + "'); return (false);"%>" class="actionBtn"><span><span>Yes</span></span></a>&#160;
            <a href="#" id="btn_NO" onclick="<%="send('NO','" + rm.getAction ("NO") + "'); return (false);"%>" class="actionBtn"><span><span>No</span></span></a>&#160;
</Body>

正常に動作しているJavascript関数:

function send(button, url) {
    if (opener.document && opener.document.forms[0] && (opener.document.forms[0].elements['sessionToken'] || opener.document.forms[0].elements['screenID']))
         {
                                opener.answer(button, url);
                                window.close();
                            } else { 
                                return false;
                            }
                        }   

getActionおよびconfirmOption(String option)はJavaで宣言されています。評価された場合confirmOption、コンソールYESまたはに出力されますNO

function setConfirm(userSelection){
        if(userSelection="YES") result = "<%=mb.confirmOption("YES")%>"; 
        if(userSelection="NO") result = "<%=mb.confirmOption("NO")%>";
}

ページをロードすると、コンソールに印刷されるのはなぜですか。

YES
NO

、ボタンをクリックする前でも?Javaのブレークポイントがトリガーされたので、ページの読み込み時にメソッドが評価されていたことがわかります。ボタンがクリックされたときにトリガーされる必要があるため、メソッドが評価されるべきではありません。

ボタンをクリックしても、ブレークポイントがトリガーされず、関連するページに移動しました。

confirmOptionページの読み込み時に関数をトリガーせず、ボタンがクリックされたときにのみ関数をトリガーする方法はありますか?

4

2 に答える 2

0

それらはオンロードで評価されません。それらは、ブラウザがロード中にそれらを見つけるとすぐに評価されますが、評価を延期することができ、上記では実際に関数を呼び出して引用符を削除することができます

于 2012-09-21T18:23:00.230 に答える
0

confirmOption関数はサーバー側の関数であり、ブラウザー側のコードの前に実行して値に変換する必要があります。したがって、このように使用する代わりに、サーブレットへのajaxポストを使用してトリガーすることができます。

于 2012-09-22T08:59:47.353 に答える