ちょっと先の未来クイズ第4問

javascriptの記述中に以下のような分岐文を作成しました。
ただこれを実行したところ、arrの値に関係なくソース下記に記述しているbbの値が代入されてしまいました。
条件によってどちらか片方だけを通り、片方だけを代入したいのですが可能でしょうか。
他の方法があればご教示お願いします。
if(arr[0].checked)
<%a= "aa"; %>
if(arr[1].checked)
<%a= "bb"; %>

A 回答 (3件)

No.1です。



それは無理です。
サーバー側で動作して結果出力されたHTMLが、
クライアントのブラウザに出力されて、
その後にJavaScriptが動作しているので、
お望みの動作をさせるのは無理です。

私が最初の回答で記述した通り、
JavaScriptで出た結果をPOSTしてやるしか方法はありません。
    • good
    • 0

javascriptはクライアントのブラウザ側で実行するものです。


JSPが実行されて、出力した結果をクライアント側に送信して、
クライアント側のブラウザはそれを解釈して実行しています。
決して同期しているものではありません。

javascript側からの条件分岐で、JSP側で処理したい場合、
非同期通信(Ajax(post/get))や、フォーム(post/get)やリンク(get)からサーバーに送られる
情報を元に、処理することになります。

質問の例のような場合、最も一般的なのは非同期通信で処理することでしょう。
    • good
    • 0
この回答へのお礼

ライブラリ使用なしで非同期通信は可能なのでしょうか?
可能であれば教えて頂けますでしょうか。

またjavascriptの戻り値を画面に表示させるのではなく、javaの変数に代入することは可能でしょうか。

お礼日時:2011/02/23 17:52

その動き(bbの値が代入される)で正しいです。


JavaScriptで条件分岐して、
サーバー側の処理を分岐することはできません。

正しく動作させるには、
arrの値をサーバーにPOSTして、
その値を基に条件分岐するのが正しいです。
    • good
    • 0
この回答へのお礼

javascriptの戻り値を画面に表示させるのではなく、javaの変数に代入することは可能でしょうか。

お礼日時:2011/02/23 17:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報