実際に submit の処理はどこで行われるのか (input 要素の onclick イベントハンドラとして設定されている aaa という関数は何をするのでしょうか?) や、『blurイベント→submitの順で処理がされるので、return false を設定しても処理を中断しません』 という部分などがよくわからないのですが、とりあえず参考になりそうなことを書いておきます。
form の submit に関する文書 を読むと、submit の処理の中で submit イベントが発生し、それがキャンセルされると submit の処理はそこで abort されると書かれています。
If the submitted from submit() method flag is not set, then fire a simple event that bubbles and is cancelable named submit, at form. If the event's default action is prevented (i.e. if the event is canceled) then abort these steps.
4.10.18.3 Association of controls and forms ? HTML Standard
なので、form 要素の submit イベントに対してイベントリスナを設定して、イベントリスナの中で入力値をチェックし、不正であったならばイベントをキャンセルすればよいのではないでしょうか? サンプルコードを書きましたので参考にしてください。
aaaでバリデーション処理があって、return falseしてるってことでしょうか?
onclick="return aaa()"
でもダメですか?
▽3
●
oil999 ●100ポイント ベストアンサー |
php側でFORMにsubmitしているので順序が入れ替わってしまいます。
入力値のチェックはJavaScriptで行い、JavaScript内で下記のようにsubmitを発行してください。
http://www.confrage.com/javascript/form/form_submit/form_submit.html
onclick="aaa();"を
onclick="aaa();return false;"
に変更してみては?
http://jsfiddle.net/nobuoka/e6TAq/
こちらはどうでしょうか。