
フォームからの送信ボタン(type="submit")をクリックされたとき
jsファイルにて下記のような処理を行うようにプログラミングしています。
jQuery
1$(function() { 2 var forms = '#testform'; 3 4 $('#submit_button').on('click', errorcheck); 5 6 function errorcheck() { 7 console.log('check1'); 8 9 //送信しない 10 $(forms).submit(function() { 11 console.log('cancel'); 12 return false; 13 }); 14 15 /* 16 空欄がないかを確認する処理 17 空欄あり => errorflg = false; 18 空欄なし => errorflg = true; 19 */ 20 21 if (errorflg) { 22 valuecheck(); 23 } else { 24 //終了 25 return false; 26 } 27 28 }; 29 30 function valuecheck() { 31 console.log('check2'); 32 33 /* 34 正規表現などを用いて入力値を確認する処理 35 不正あり => valueflg = false; 36 不正なし => valueflg = true; 37 */ 38 39 if (valueflg) { 40 ajaxstart(); 41 } else { 42 //終了 43 return false; 44 } 45 }; 46 47 function ajaxstart() { 48 var formsinfo = $(forms).serialize(); 49 50 $.ajax({ 51 type: 'post', 52 url: 'insert.php', 53 data: formsinfo, 54 datatype: 'json', 55 }).done(function(returns) { 56 //jsonで返ってきた値を処理 57 }).fail(function(jqXHR, textStatus, errorThrown) { 58 alert('エラーです\n'); 59 }); 60 }; 61});
これを実行した際、
コンソール(GoogleChromeで確認)には以下のように表示されていると私は考えていました。
check1
cancel
check2
しかし、実際は以下のように表示されます。
check1
check2
cancel
また、エラーを繰り返すテストを行うとコンソールのメッセージが下記のようになります。
check1
check2
cancel
cancel
cancel
送信ボタンを押したのが3回目だと「cancel」が3回連続で、
4回目だと「cancel」が4回連続で表示と増えていきます。
そこで質問なのですが、
A.私が考えていたような順番にならないのはなぜでしょうか。
何か優先順位があるのでしょうか。
B.送信ボタンを押した回数だけ「cancel」が増えるのはなぜでしょうか。
以上、ご教示いただけると幸いです。
なお、質問に関係ないと思われる部分のプログラムは省略しています。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/01/30 13:14