- ベストアンサー
javascript中の記述でのJSP文<%%>
javascriptの記述中に以下のような分岐文を作成しました。 ただこれを実行したところ、arrの値に関係なくソース下記に記述しているbbの値が代入されてしまいました。 条件によってどちらか片方だけを通り、片方だけを代入したいのですが可能でしょうか。 他の方法があればご教示お願いします。 if(arr[0].checked) <%a= "aa"; %> if(arr[1].checked) <%a= "bb"; %>
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 それは無理です。 サーバー側で動作して結果出力されたHTMLが、 クライアントのブラウザに出力されて、 その後にJavaScriptが動作しているので、 お望みの動作をさせるのは無理です。 私が最初の回答で記述した通り、 JavaScriptで出た結果をPOSTしてやるしか方法はありません。
その他の回答 (2)
- emoemoemosan
- ベストアンサー率54% (20/37)
javascriptはクライアントのブラウザ側で実行するものです。 JSPが実行されて、出力した結果をクライアント側に送信して、 クライアント側のブラウザはそれを解釈して実行しています。 決して同期しているものではありません。 javascript側からの条件分岐で、JSP側で処理したい場合、 非同期通信(Ajax(post/get))や、フォーム(post/get)やリンク(get)からサーバーに送られる 情報を元に、処理することになります。 質問の例のような場合、最も一般的なのは非同期通信で処理することでしょう。
- marutone
- ベストアンサー率40% (70/174)
その動き(bbの値が代入される)で正しいです。 JavaScriptで条件分岐して、 サーバー側の処理を分岐することはできません。 正しく動作させるには、 arrの値をサーバーにPOSTして、 その値を基に条件分岐するのが正しいです。
お礼
javascriptの戻り値を画面に表示させるのではなく、javaの変数に代入することは可能でしょうか。
お礼
ライブラリ使用なしで非同期通信は可能なのでしょうか? 可能であれば教えて頂けますでしょうか。 またjavascriptの戻り値を画面に表示させるのではなく、javaの変数に代入することは可能でしょうか。