[PHP-users 7482] Re: フォーム関連の質問2

Osamu Shigematsu php-users@php.gr.jp
Thu, 16 May 2002 03:51:54 +0900


重松です。こんにちは。

On Thursday, May 16, 2002, at 03:23  AM, shojun kimura wrote:

> もし、nameのところで、文字列を入れて、ボタンを押さないで、
> リターンキーを押した場合には、、deleteボタンを押してないのに、
> deleteの処理をしてしまいますが、何か対処法はあるんでしょうか。

対処法、という意味がよくわかってないのですが。;-P

return もしくは enter をボタンのクリックとして処理したくないのか、
default を delete ではなくて、submit としたいということでしょうか。

どちらもブラウザに依存しそうな気もするのですが、
前者ならば、JavaScript を使って、可能となる気がしますし、
後者ならば月並みですが、<input type="submit" ... の順番を入れ替えるなり
こちらも JavaScript で対応可能な気がしますが、全然 PHP に関係ないですよ。

厳密に調べていないのですが、良く Web などで mouse down 時に、
ボタンが押下されたイメージに変更し、mouse up 時に、元に戻す処理を見ますので、
このことから、mouse down, mouse up のイベントが取れますよね?
当然、click のイベントも取れると思いますが、mouse down 時に
どのボタンがクリックされたか記録しておき、mouse up 時にクリアします。
click 時に同じボタンが記録されているときはボタンが現にクリックされたと判定でき、
そうでないならば、処理をキャンセルするなり、default としたい処理を走らせば、
お望みことが可能となりそうな気がします。
# あくまでも気がするだけ。

出力した HTML を処理するのは、ブラウザの仕事なので、
PHP では処理できないからですが、動作原理の方は大丈夫でしょうか。

--
Osamu Shigematsu
mailto:shige@ravi.ne.jp