- - PR -
Vectorのデータ確認
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-27 09:53
画面にある入力項目の値が変更された場合に、何行目のデータが変更されたかを格納するVectorに
行数を格納しようとしています。格納する場合には既に同じ値が格納されていないか確認して 格納されていない場合のみ格納します。 下記のようにしてみたのですが、Vectorになにも格納されません。 <input name="txtId" onChange="<% if(vecUpdRwo.contains(String.valueOf(i))==false){vecUpdRwo.addElement(String.valueOf(i));} %>" type="text" id="txtId" tabindex="6" size="28" value=<%= bean.getId(i) %>> このような事を実現するには、どのような方法があるのでしょうか? よろしくお願いします。 | ||||||||
|
投稿日時: 2004-09-27 10:05
画面のソースはどのようになっていますか?
onChange=""であれば何も実行されません。 onChangeはJavaScriptを呼ぶためのイベントなので、Javaを実行するためには、 JavaScriptの関数を用意して、そこからServletをコールするなどの必要があると思います。 | ||||||||
|
投稿日時: 2004-09-27 10:15
taroさん、ありがとうございます。
そうなんですね、恥ずかしながら知りませんでした。 <%%>で囲っておけば何でも動くと思ってました。 今回は、Servletを使わないでやってみたいので、onChangeでFunctionを呼んで そこで、処理してみようと思います。 [ メッセージ編集済み 編集者: カウンター 編集日時 2004-09-27 10:28 ] | ||||||||
|
投稿日時: 2004-09-27 10:30
FunctionというのはJavaScriptの関数ということでしょうか? お書きになったコードは内容は正しいと思いますが、Javaのコードですよね? Servletを使わないのであれば、JSPをリロードすると Javaのコードが再度実行されて希望の結果になるかもしれません。 (説明が下手ですみません・・・。) | ||||||||
|
投稿日時: 2004-09-27 10:44
taroさん、ありがとうございます。
そうです、javaのコードです。 ただ、javascriptのfunctionでやるにしても、 if(vecUpdRwo.contains(String.valueOf(i))==false){ のiをjavaの変数として 取得できなさそうなので、無理っぽいです ![]() やはり、servletを使うしかないのが一番スマートなやり方なのでしょうか。 | ||||||||
|
投稿日時: 2004-09-27 11:03
生成されたVectorをどのように使用するか分からないので何がスマートかは
分からないのですが、Vectorに含まれる値かどうかはJavaScriptに判断させて、 新しい値が入力されたときだけ、パラメータに入力値を付けて同じJSPを コールして再表示させることはできると思います。 更新ボタンでも用意した方がUIは良いかもしれませんが・・・。
[ メッセージ編集済み 編集者: taro 編集日時 2004-09-27 11:09 ] | ||||||||
|
投稿日時: 2004-09-27 14:33
taroさん、ありがとうございます。
いろいろ検討した結果、教えて頂いた方法とはちがうのですが、 各行に非表示オブジェクト(フラグとして)を用意しておいて、 onChangeで変更された行のフラグをたてて、 配列を作成するタイミングで、画面の全行を見て、フラグがたっている行番号のみを 配列に格納することで、解決しました。 |
1