サーブレット初心者です。
基本的なことかもしれませんが詰まってます。
select.jspからresult.jspへ画面遷移する際、そこで選択した内容をresult.jspで反映させようとしています。
しかし、現状のresult.jspではプルダウンで選択したものが表示されません。
(select.jspではjavaでsetAttributeして値をresult.jspに返すような処理をしています)
select.jspの画面としては以下の通りです。この画面で入力、選択を行い、result.jspに内容を返します。
select.jsp↓
A (入力フォーム)
B (入力フォーム)
C (プルダウン)
D (入力フォーム) ・・・※Cのプルダウンで「自由入力」を選択すると非表示→表示となる
該当のソースコード
result.jsp(jspのbodyを記載)
...略 <% String a = request.getAttribute("A1"); String b = request.getAttribute("B1"); String c_select = request.getAttribute("c1_select"); String d = request.getAttribute("D1"); %> ...略 <body> <div align="center">A<%=a%></div> <div align="center">B<%=b%></div> <div id="C" align="center">C<%=c_select%></div> <div id="D" align="center">D<%=d%></div> <script> if (D == null) { document.getElementById("D").style.display = "none"; document.getElementById("C").style.display = "block"; } else { document.getElementById("D").style.display = "block"; document.getElementById("C").style.display = "none"; } </script> <略> </body>
試したこと
入力フォームにはすべてtest、プルダウンには自由入力以外を選択した場合、
A test
B test
D
入力フォームにはすべてtest、プルダウンには自由入力を選択して入力フォームにtestと入力した場合、
A test
B test
D test
と表示されました。
想定していることは
「入力フォームにはすべてtest、プルダウンには自由入力以外を選択した場合、」
にきちんとCも表示され、Dは非表示となることです。↓の通り
A test
B test
C (選択内容)
こちらはD(入力フォーム)に値がなければ表示非表示を行えばいいと思ってましたが、
動作確認するとどうやらifが機能していないように見えます。
試しに<script>以下の値を消したら、問題なくすべて表示されていました。
値はきちんとsetできているのでそこは問題ないと思いますが、if文がやはりおかしいのでしょうか・・・?
補足情報(FW/ツールのバージョンなど)
Eclipse IDE v4.14.0
回答1件
あなたの回答
tips
プレビュー