リターン押して、FORMのSUBMITをさせないには?

[上に] [前に] [次に]
[E-Mail] 1998/05/15(金) 10:05:43
私は、HTMLでFORMを定義し、INPUT入力領域と、SUBMITボタンを使っています。
でも、IE3.0を使って見る時、入力領域に入力して、リターンキーを押すと、勝手に
SUBMITボタンが押された同様に、FORMのACTIONを起動されてしまいます。
Netscape Communacatorの時でも、入力領域は1つの時、同じ現象が発生します。
どうやってリターンキーを無効にするのでしょうか。私は、マウスでSUBMITボタンを
押下する時のみ、FORMのACTIONを実行させたいですが.......
ご回答をお待ちしております。

mura [E-Mail] 1998/05/15(金) 12:52:51
方法が2つ見つかりました。他にもあるかも。

★1: submitボタンのonClickのあとにFORMのonSubmitが動作するという前提です。
     (WIN95版のIE3/ネスケ3/ネスケ4ではこうなってました)

<HTML><HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=JavaScript>
<!--
var clicked=false;
// -->
</SCRIPT>
</HEAD>
<BODY>

<FORM ACTION="hoge.cgi" METHOD=POST onSubmit="return clicked;">
<INPUT type=text NAME=search VALUE="検索文字列">
<INPUT type=submit onClick="clicked=true; this.form.submit();">
</FORM>
</BODY></HTML>


★2: 変数の数が少なければ次の方法でもOKです。
     フォームを2つ用意し、画面で見える部分はダミーのフォームにします。
     ダミー側は「onSubmit="return false;"」を用意、
     submitボタンのonClickの時にほんとのフォームをsubmit()します。

<HTML><HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>

<!-- 実際はこっちをsubmitする -->
<FORM ACTION="hoge.cgi" METHOD=POST>
<INPUT type=hidden NAME=search>
</FORM>

<!-- ダミー側 -->
<FORM onSubmit="return false;">
<INPUT type=text NAME=search VALUE="検索文字列">
<INPUT type=submit onClick="document.forms[0].search.value = this.form.search.value; document.forms[0].submit();">
</FORM>

</BODY></HTML>

mura [E-Mail] 1998/05/15(金) 12:59:18
上の例で最後のonClickは途中で改行されちゃいましたが、
実際は改行なしです。念のため。

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