- - PR -
Strutsのhtml:textタグ内でJavaScriput関数を呼び出す場合
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-11 18:12
Strutsのhtml:textタグを使用してます。
onchangeイベントハンドラでJavaScriputで作成した関数changeFlagを呼び出しています。この関数には引数が1つあります。リストのインデックス値渡したいのですがうまくいきません。 等号記号が必要ですというJSPエラーになります。 下記のJSP内容のmIndexの値を引数に渡したいのですが。 教えてください。よろしくお願いします。 JSPの内容 <logic:present name="aaForm" property="FindList"> <table class="ListDisp"> <logic:iterate id="listData" name="aaForm" property="FindList" indexId="mIndex"> <tr> <td> <html:text name="listData" property="thisComment" indexed="true" maxlength="32" size="75" onchange="changeFlag(<bean:write name="mIndex"/>);"></html:text> </td> </tr> </logic:iterate> </table> </logic:present> [ メッセージ編集済み 編集者: りりー 編集日時 2006-08-11 19:36 ] | ||||
|
投稿日時: 2006-08-11 18:23
焼きそばです。
onchange="changeFlag(<bean:write name="mIndex"/>);" だとダブルクォーテーションが文法的に引っかかります。 なのでmIndexにはシングルクォーテーションで囲ってあげましょう。 また、mIndexはJavaのIntegerオブジェクトになりますので スクリプトレットを使用してintValueメソッドで取得する必要があります。 | ||||
|
投稿日時: 2006-08-11 19:32
早速の回答ありがとうございます。
シングルクォーテーションにしてみたところ画面出力時に構文エラーになります。 下記の方法も試したのですが、うまくいきません。 <% int indexVar = mIndex.intValue(); %> <html:text name="listData" property="thisComment" indexed="true" maxlength="32" size="75" onchange="changeFlag(<%=indexVar %>);"></html:text> どうしたらよいでしょうか お願いします。
[ メッセージ編集済み 編集者: りりー 編集日時 2006-08-11 19:42 ] [ メッセージ編集済み 編集者: りりー 編集日時 2006-08-11 19:43 ] | ||||
|
投稿日時: 2006-08-14 22:21
もう一押しです。
まず前提としてあるのが、 ・タグエレメント中にタグエレメントを記述することは出来ません。 ・属性値はダブルクォートで囲むと文字列として評価します。 このため、属性値をシングルクォートで囲む必要があります。 書き方の問題だけですので書きますが
といったふうになります。 | ||||
|
投稿日時: 2006-08-15 14:32
皆様、いろいろと回答ありがとうございます。
とりあえず、Strutsのhtml:textタグに固執せず、HTMLのinputタグを使用して そこでonchangeハンドラで改めてbean:writeタグを使用したらうまくいきました。 そもそもはリストの所定の位置を取得したり再設定したりするのに便利なので Strutsタグを使用していたのですが、あきらめて呼び出しているJavascriptの関数内で 自力で設定することにしました。 お騒がせしました。 暁さんが教えてくださった方法も試したのですが、<%="changeFlag(" + mIndex + ");"%>の部分がjavascriptだと認識されないようなので・・・ いろいろありがとうございます。 |
1