• ベストアンサー

struts bean:defineについて

現在struts + weblogicでwebアプリの開発を行っています。 行いことは以下のようになっています。 <table> <html:form action"/hoge"> <logic:iterate id="lst" name="hoge" indexId="idx"> <bean:define id="listIndex" name="idx"/> <tr name='<bean:write name="idx"/>'> <td> <html:select name="lst" property="timeH" onclick="document.hogeForm.hdn.value='<%=listIndex%>'> <html:options property="timeHList"/> </html:select>    ・・・中略・・・ <input type="hidden" name="hdn"> </html:form> ここで問題になっているのが、onclickイベントでhiddenに値を入れようと思っているのですが、<%=listIndex%>がそのまま文字列になって返ってきます。 シングルコーテーションを外したらスクリプトエラー、 ダブルコーテーションで書いたら<html:select>のタグが閉じてないといわれ、エラーで落ちます。 どのように値を格納すれば正しくhdnに値を格納できるのでしょうか? struts 1.1 Weblogic 8.1 SP1 Windows2000にて開発 以上、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

これが解決にはならないと思いますが… <html:select name="lst" property="timeH" onclick="document.hogeForm.hdn.value='<%=listIndex%>'> のonclick属性のダブルクォーテーションがちゃんと閉じられていないと思うのですが…これじゃダメでしょうか。 <html:select name="lst" property="timeH" onclick="document.hogeForm.hdn.value=<% =listIndex%>"> それと、<select>にイベント付けるなら、普通はonchangeでは…? <select>の内容をhiddenに渡したい訳ではないなら、他の方法を考える事をオススメします。 具体的に何がしたいのかわかれば、この私程度でも少しはお役に立てるアドバイスができそうですが、いかがでしょう。

その他の回答 (2)

  • lawson
  • ベストアンサー率44% (29/65)
回答No.3

あっ onchange でしたっけ。 じゃ、No1のonclickの部分をonchangeに 読み替えてください。

  • lawson
  • ベストアンサー率44% (29/65)
回答No.1

上記の↑のエラーの理由はよくわかりませんが。 やりたいことは、実行時にselectメニューで 選択項目を変更するたびにをhiddenの 値を変えたいということでしょうか? だと、すれば、いづれにせよ。 上記のやり方では、うまくいかないように 私には見えるのですが・・・。 上記のやり方では、 サーバーサイドでJSPを実行した時の jsp側の変数listIndexの値が文字列に展開された 識別子について、javascriptが解釈した値を 選択メニューの値が変えられるたびに document.hogeForm.hdn.valueに 代入している。 ということになります。 つまり、 選択メニューでなにを選ぼうが、 document.hogeForm.hdn.valueには 常に同じ値が代入されることになって しまうのではないでしょうか? これって、utataneのやりたいことなのでしょうか? utataneがしたいのはこういうことなのではないでしょうか? <html:select name="lst" property="timeH" onclick="document.hogeForm.hdn.value=document.hogeForm.timeH.options.selectedIndex"> もしくは、 <html:select name="lst" property="timeH" onclick="document.hogeForm.hdn.value= document.hogeForm.timeH.options[document.hogeForm.timeH.options.selectedIndex].value"> こうすれば、クライアント側のjavascriptの機能で 選択メニューの値を変更する度に、 その時、選択メニューで選ばれている内容に対応する 値がhiddenタグにはいると思いますが。 私の勘違いなのかなぁ。 なお、 質問文のエラーの回避方に関しては、 ちょっと、よくわかりません。 以上

関連するQ&A

専門家に質問してみよう