テキストボックスでリターンキーを押下した場合にCGIへデータを送信するのを防ぐには?

[上に] [前に] [次に]
カンちゃんカンカン 1998/11/20(金) 23:17:34
フォームにテキストボックスが一つしか無い場合にそこでリターンキーを押すと、サブミットボタンを押したわけでもないのに勝手にCGIへデータの送信を始めてしまいます。(送信されるまえにJavaScriptで入力チェックなどができない)
フォームにテキストボックスが2つ以上在るとこの現象はおきないのですが・・・。
だれか、回避策などを教えてもらえないでしょうか?
(使用しているブラウザはIE4.01SP1です)

B-Cus 1998/11/22(日) 06:50:56
 http://www.aist.go.jp/NIBH/~honda/EasySEARCH/
ここは、enter押すと警告されます。ただ、CGIでやってるのか
JavaScriptでやってるのか知らない(ソースさえ見てない)ので、
参考にならなかったら失礼。

カンちゃんカンカン 1998/11/23(月) 14:50:24
[[解決]]
上記のURLのソースを見てみました。
内容はテキストボックスをもつフォームに警告を出すCGIを使用しており(無条件に)、実際にテキストボックスの内容を使用しているのは別フレームのフォームでした。(JavaScriptdで)
このホームページの作成者も同じような問題にぶつかったのだろうとおもいます。

とゆうことで、以下のような方法を思い付きました
CGIはテキストボックスとは別のフォームから起動するような方法です。(まだ試してない)
B−Cusさん、どうもありがとうございました。

<head>
<script language=javascript>
function fnc()
{
  // チェック処理
  if(document.form1.text1.value == "")
    return;
  // CGIへ
  document.form2.text1.value =     docment.form1.text1.value;
  document.form2.submit();
}
</script>
</head>
<body>
<form name=form1>
<input type=text name=text1>
</form>
<form name=form2 action=test.cgi method=post>
<input type=hidden name=text1>
</form>
<input type=button name=button1 onClick="fnc()">
</body>

[上に] [前に] [次に]