テキストボックスでリターンキーを押下した場合に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>
[上に]
[前に]
[次に]