リターン押して、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は途中で改行されちゃいましたが、
実際は改行なしです。念のため。
[上に]
[前に]
[次に]