WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:リロード時のフォームの開放タイミング

0:[投稿] 強烈困っています。。。 [2004/10/27 23:05 ][環境:IE6 Apache,Tomcat,JSP]

ボタン押下契機で、hiddenをJavaScriptで参照するプログラムを作成しているのですが、現状ボタン連打によるリロードでランタイムエラーが発生します。(エラー内容はhiddenオブジェクトにアクセスできない)
リロード時のフォームオブジェクトはいつ開放されるのでしょうか?
ボタン押下契機でJavaScriptが動くタイミングにフォームが生成されていない感じです。どなたかIEでのシーケンスをご存知の方いらっしゃいませんでしょうか?


1:[回答] Orange [2004/10/28 00:03 ]

http://www.parkcity.ne.jp/~chaichan/qanda/qa5497.htm?04-10-19-05-55

私も以前に、ボタン押下契機にCGIフォーム送信とJavascriptの処理を同時にしようとして失敗しました。フォーム送信もJavascript処理にするとか、押下契機がCGIフォーム処理ならJavascriptは別の契機する方法に変えた方がいいかもしれません。onClick,onSubmitでもだめならonUnloadなどはいかがでしょうか。
私はあまり詳しくないので参考程度にしてください。上手くいきましたら教えてください。


2:[質問] バギンズ [2004/10/28 03:06 ]

>>0
「ボタン連打」、「リロード」で思いつくのはチャットぐらいなのですが、具体的には何をしようとしているのでしょう?

「ボタン押下契機でJavaScriptが動くタイミングにフォームが生成されていない」だけでは、何のことかまったく解りません。


3:[回答] 強烈困っています。。。 [2004/10/28 11:29 ]

みなさま回答ありがとうございます。m(_ _)m
JSPで生成されるソースは以下になります。(かなり省略してますが。。。)

<script type="text/javascript">
function setCommand(cmd) {
     :
     :
 document.Listform.command.value=cmd;
     :
     :
 document.Listform.submit();
}
</script>
<body>
<form name="Listform" method="post" >
          :
<input type="button" onClick="setCommand('search')">
          :
<input type = "hidden" name = "command">
</form>
</body>

やりたいことは、ボタン押下時にコマンド種別をformにいれて
サーブレットに飛ばしたいんです。
ただ、ボタン連打(ネットワーク遅延あり)すると
document.soListform.command.value=cmd;の行でランタイムエラーになります。
こちらとしては、リロードが中途半端でボタンを受けてフォームが生成される前にアクセスに行っているものと仮定して質問しました。(そもそもリロード途中で動作するのかも含め)
有識者の方お願い致します。


4:[回答] Pnet [2004/10/28 15:00 ]

フラグを使うのはどうですか?
<script type="text/javascript">
flag=false;
function setCommand(cmd) {
 if(flag){
     :
     :
 document.Listform.command.value=cmd;
     :
     :
 document.Listform.submit();
 flag=false;
 }
}
window.onload=function (){flag=true;}
</script>

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World