ただ、条件として、submitボタンは画像である必要があります。
そこで、以下でやろうとしましたが、以下ですと、
//php
echo $form->submit('img.jpg', array('type' => 'submit','onClick' => 'aaa();','div' => false,'alt' => '検索'));
//出力されるソース
<input type="image" src="/img/img.jpg" onclick="aaa();" alt="検索">
上記の場合、問題なのが、入力後すぐに検索ボタンをクリックすると、
blurイベント→submitの順で処理がされるので、return false を設定しても処理を中断しません。
なにかよい別案ないでしょうか。
php側でFORMにsubmitしているので順序が入れ替わってしまいます。
入力値のチェックはJavaScriptで行い、JavaScript内で下記のようにsubmitを発行してください。
http://www.confrage.com/javascript/form/form_submit/form_submit.html
実際に 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()"
でもダメですか?
ありがとうございましたっ
php側でFORMにsubmitしているので順序が入れ替わってしまいます。
入力値のチェックはJavaScriptで行い、JavaScript内で下記のようにsubmitを発行してください。
http://www.confrage.com/javascript/form/form_submit/form_submit.html
いつもありがとうございますっ
いつもありがとうございますっ
2013/01/12 22:43:41