• ベストアンサー

イベントの発生

2つ質問があります。 1つはフォームがサブミットされた時(onSubmit)、フォームがリセットされた時(onReset)に発生するらしいですが、 どういうことか分かりません。 どのタイミングで発生するのかということと、どいう時に使うのでしょうか? 2つ目はが移動された時に発生する(onMove)ですが、 ウインドウをマウスで移動しても発生しませんでした。 どうしてか分かりませんので、教えて下さい。 よろしく御願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

■「onSubmit」イベント ○記述箇所 ・FORMタグ内 ○発生タイミング ・SUBMITボタンが押された時 ・フォーム内のテキストボックス内でEnterキーが押された時(ブラウザ依存) ※「form.submit()」では発生しない。 ○主な利用方法 ・送信時の入力チェック 例:  <FORM … onSubmit="return check()"> のようにしておき、関数check内では「必須項目の入力漏れ」「内容チェック」などを行う。 入力させ直したい場合は、「false」を返すことで、送信をキャンセルできる。 (通常は、alertなどで注意を促す。) ■「onReset」イベント ○記述箇所 ・FORMタグ内 ○発生タイミング ・RESETボタンが押された時 ※IE5/IE6/NN4 では、「form.reset()」を実行した場合にも発生。 ○主な利用方法 ・onSubmit同様、RESETの確認などに使えそうだが、NN6.2を除く多くの主要ブラウザで、form.reset() でもイベントが発生してしまうというバグ(仕様?)のせいで、使い道はまずない。 (false を返せば、リセット動作をキャンセルできる。) ※このブラウザで、onReset で呼び出した関数内で form.reset() を実行すると、その関数が無限に呼び出し続けられることになる。 ・このため通常は、BUTTON の onClick で呼び出した関数内で、form.reset() をする。 ■「onMove」イベント ○記述箇所 ・BODYタグ内 ○発生タイミング ・ウィンドウの左上座標がが変化する時 ※リサイズ時の座標変更も含む。 ○主な利用方法 ・サポートされているのが NN4 のみなので、利用価値なし。

その他の回答 (1)

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

1.フォームがサブミットされるというのは、そのフォームのACTIONに設定したURLにフォームの値を持って遷移する、ということで、submitボタンを押すか、JavaScriptで明示的に指定するかで発生します。リセットも同様で、フォームの内容を初期化する時に発生するイベントです。 ちなみに両者とも、呼び出した関数の返却値にfalseを指定することで本来の動作を無効にすることが出来ます。 用途としては、submitボタンを押下、もしくは別手段でsubmitされたときにフォームに記入されている内容の文字数等の制限事項をチェックする関数を呼び出して、制限に引っかかるようだったらメッセージを出して遷移する処理をやめる、というときに良く使われます。リセットの用途はちょっとわからないですね・・・(スイマセン) 2.onMoveイベントはネットスケープ4以上じゃないとサポートしてません。 それ以下のバージョン、もしくはIEなど他のブラウザでは使えません。

参考URL:
http://tohoho.wakusei.ne.jp/js/index.htm