フォームでENTERKEYを無効にするには?

[上に] [前に] [次に]
みよっち 2000/05/19(金) 00:24:54
フォームで入力している時にENTERを押下すると
そのまま送信されてしまうのですが、
送信はあくまでも送信ボタンを押した時だけにしたいのですが
どのようにしたらよろしいでしょうか?

R.M [E-Mail] 2000/05/19(金) 08:15:03
http://super.fureai.or.jp/~jrm/sand/tech/web/javascript_temp/cansubmit.html
JavaScriptを使って……

Fuji.♪ [E-Mail] [HomePage] 2000/05/19(金) 11:40:48
IEを使わずにMozillaやLynxやw3mや...を使うとか。
IEでもJavaScriptをoffにしてたら結局Enterでsubmit押せちゃいますから。

あとは、input type="text"を使わずにtextareaを使うとか。(Enter押しても改行されるだけ)

バギンズ [E-Mail] [HomePage] 2000/05/19(金) 17:10:10
>Fuji.♪ さん
>IEでもJavaScriptをoffにしてたら結局Enterでsubmit押せちゃいますから。
逆じゃないでしょうか?
R.Mさんの方法はJavaScriptをoffにしてると送信できない様になって
いるみたいですけど...
(Fuji.♪ さんが見た後で書き換えられていたら別ですが...)
でも、あの方法なら、FORMのonSubmitのチェックはいらない気がします。

>みよっちさん
送信されないようにするのではなく、送信されたら一旦確認画面を
出す方法とかがいいのでは?

R.M [E-Mail] 2000/05/20(土) 04:51:00
Fuji.♪ さんの言われるとおりです
あのスクリプトはEnterボタンでのSubmitをonSubmitの処理で中止します
onSubmitの処理がないと意味がありません

バギンズ 2000/05/20(土) 14:38:36
>R.Mさん
ノースクリプトで INPUT TYPE=SUBMIT が無いフォームで送信できるって事ですか?
そりゃむりだと思うけどなー...

PET 2000/05/23(火) 17:38:02
>送信はあくまでも送信ボタンを押した時だけにしたいのですが
ボタンに名前を付け、CGIで判定する。

input type="submit" name="sousin" value="送信"



CGIのデコードの下辺りに

if ($FORM{'sousin'} eq "") {
print "Content-type: text/html\n\n";
print "送信ボタンを押して下さい。";
exit;
}

でいいんじゃないでしょうか。
#戻って再記入とかなる場合もあります。(笑)

Syn [E-Mail] 2000/05/23(火) 17:58:22
過去ログ検索するといっぱい出てきますが。

> if ($FORM{'sousin'} eq "") {

Enter を押したときの動作は submit をクリックしたときの動作と
等価ですので、この処理では回避できないんじゃないかと思います。

JavaScript 使っていいなら、テキストボックスの OnKeyPress
イベントで Enter のコードだったら無視するようにすればいいの
ではないかと思います。

OnKeyPress="if (event.keyCode == 13) {event.returnValue = false;}"

ken 2000/05/28(日) 19:21:17
JavaScriptになりますが
私はこうしています

<form></form>の中に
Textboxが2つ以上あるばあい

submitボタンを普通のbuttonにして
<input type="button" ... onclick="document.form名.submit()">
に変更すればtextboxで
Enterを押してもSubmitされないはずです。

TextBoxが一つしかない場合は
<form onsubmit = "return check()" action="...">とし
JavaScriptのところで
function check()
{
return confirm("送信してもよいですか");
}
のようにして、確認ダイアログを表示すれば良いのでは

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