リセットボタンを制御するには?

[上に] [前に] [次に]
さっち 1999/07/07(水) 08:53:48
こんにちは、いつもお世話になってます。
UNIX環境で掲示板を作成しているのですが、Win98+InternetExplorer5.0
の環境で使用した場合、入力フィールドに入力中に[ESC]を押すと、リセ
ットボタンがハイライトされてしまいます。この動作を回避する方法が、
何かあるんでしょうか?

Nobu3 1999/07/07(水) 13:59:50
ふと思いついて、ここで[ESC]を押すと「取消」されてしまいました。(Win95+IE4.01SP1)
今まで1度もやった事なかったんですが・・・必要な機能でしょうか?
注意書きにとどめておくほうが良いと思います。

回避できるとすれば、スクリプトに頼らざるを得ないでしょうが・・・。
スクリプトをオフにしてる人もいるみたいだしね・・・
使うとしても[ESC]をキャンセルするわけだから、「onkeydown」か「onkeypress」でイベントからキーコードを読むくらいしか思いつかない。
日本語入力は大丈夫なのかなぁ・・・

無責任官庁 1999/07/07(水) 14:25:50
> リセットボタンがハイライトされてしまいます

リセット動作そのものを止めたいのでしょうか?
単にフォーカスを外すだけなら、onFocusで、blur()入れるとか(^_^;)

ちなみに、フォーム上にリセットボタンがある場合は、
ESCを押すとリセット動作になり、リセットボタンにフォーカスが行きます。
動作そのものを止めたいなら、Nobu3の話のように・・・なるのかな。
(私はそのへんは知りませんので・・・)

が、リセットボタンを配置せずに、同等の機能のボタン、
<input type=button onClick="document.form1.reset();" value="取り消し">
↑こんなのを置いておくと、
ESCキーはUNDOのような動作になるようです。
(いっぺんに全部のリセットはしなくなる)
当然、フォーカスはあたりません。

参考にはならなかったかな?(^^ゞ

さっち 1999/07/07(水) 15:06:42
Nobu3さん、無責任官庁さん、どうもありがとうございます。

>ふと思いついて、ここで[ESC]を押すと「取消」されてしまいました。(Win95+IE4.01SP1)
IEを使用するとみんな、こうなるのですか?

>ちなみに、フォーム上にリセットボタンがある場合は、
>ESCを押すとリセット動作になり、リセットボタンにフォーカスが行きます。
私が使用している環境は、WS、Mac(ともにNS)なんですが、ESCがリセットの動作に
はならないんです。他の方が、Win98+IE5.0の環境で使用していて、「漢字変換ミス
の修正時にESCを1回余計に押してしまうだけで、内容が消えてしまうのは困る。」
といわれてしまい、私も困ってしまいました。(;_;)

>リセット動作そのものを止めたいのでしょうか?
送信にはsubmit、取消しにはresetを用いています。
送信、取消しともにボタンがクリックされたときのみ動作して欲しくて、
ESCによるリセット動作を止めたいのですが・・・。

こういう場合どうするのが良いのでしょうか?

無責任官庁 1999/07/07(水) 16:15:12
とりあえずNobu3の話をカタチにすると・・・
<form action="..." onKeyDown="if(event.keyCode==27){return false;}">

↑こんな風になるのかな?
<form>タグに、onKeyDownの部分を追加したモノです。
細かいチェックはしてないので、保証できませんが。
とりあえずESCキーの動作はキャンセルされる・・・と思います。

#関係ないハナシですが・・・
#Nobu3=のぶさん、で、いいんですよね(^_^;)
#Nobu3さんって書くと、のぶさんさんって変かなぁ・・・なんて。
#あ、気にしないで下さい。(^_^;;)

さっち 1999/07/07(水) 16:46:46
>#Nobu3=のぶさん、で、いいんですよね(^_^;)
>#Nobu3さんって書くと、のぶさんさんって変かなぁ・・・なんて。
えっ、そうなんですかぁ?(^o^)

><form action="..." onKeyDown="if(event.keyCode==27){return false;}">
これの event.keyCode==27 ってESCのコードなんですか?

Nobu3 1999/07/07(水) 16:57:44

<input type=text value="" onKeyDown="this.value=window.event.keyCode">
↑こう書けばフォームでコードを調べる事ができます。[ESC]を押すと・・・27ですね。
で、調子に乗ってもう1度押すと・・・消えた!
・・・だめみたい・・・

#名前は誰なのかがわかればいいです(笑)
#それにしても「#」のニュアンスって難しいです。
#「余談」とかいう意味らしいですが、(独り言みたいなもので)
#「レスをつけてはいけない」と言う人もいたり・・・

さっち 1999/07/07(水) 17:14:11
>・・・だめみたい・・・
だめですか・・・。
っていうのはESCを2回以上押すとってことですか?
自分で動作確認することができないので・・・すみません。

Nobu3 1999/07/07(水) 17:28:55
Win95+IE4.01SP1では、無責任官庁さんの方法は無理みたいです。
念のため、テキストボックスにも書いて試してみましたが、無理でした。
さらに、「onkeypress」も同時に使いましたが、結果は同じ・・・。

この動作は日本語入力後1回、変換キャンセル後1回押した状況です。

コードを調べるスクリプトは1回目は成功ですが、2回目はリセットです。

Nobu3 1999/07/08(木) 00:20:20
Win98+IE5.0では、完璧ですね。
問題なく動作しました。っていうか動作しませんでした(笑)

まぁIE5だけでも救われたということで・・・

さっち 1999/07/08(木) 08:47:16
Nobu3さん、無責任官庁さんどうもありがとうございました。
この方法で、やっていきたいと思います。
動作確認や記述方法を教えてくださって、本当に助かりました。
でもまだ、[解決]マークは取りあえず押さないでおいときますので
また何か、方法がありましたらよろしくお願いします。m(_ _)m

匿名 1999/07/11(日) 00:54:44
俺もNSなんで知らなかった!

で、方法だけど。
ヘッダーに
<meta http-equiv="Pragma" content="no-cache">
を加えて、

本文のフォームの部分を
<FORM ACTION="form.html">
<INPUT TYPE=TEXT><BR>
<INPUT TYPE=submit VALUE=" 送信 ">
</FORM>

<FORM ACTION="form.html">
<INPUT TYPE=submit VALUE=" 取消 ">
</FORM>

こんな感じに分けてみたら?
「取消」押せば再読み込み掛かるからもしかしたら
これでいけるかも。
でも試してないんでダメだったらゴメン

匿名 1999/07/11(日) 00:56:43
あやっ違った、1つ目の<FORM>は実際に送るCGIなどで
2つ目の<FORM>は、自分自身のページね。

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