$('#stwform').validate({ rules: { visit1: { required: true }, visit2: { required: true }, visit3: { required: true }, visitinghours: { required: true }, area: { required: true }, timing1: { required: true }, timing2: { required: true }, timing3: { required: true }, name: { required: true }, kana: { required: true, katakana: true }, gender: { required: true }, email: { required: true, email: true }, tel: { required: true, number: true }, agree: { required:true } }, messages: { name: { required: 'お名前を入力してください' }, kana: { required: 'フリガナを入力してください' }, gender: { required: '性別を選択してください' }, email: { required: 'メールアドレスを入力してください' }, tel: { required: '電話番号を入力してください' }, agree: { required: '個人情報の取扱への同意が必要です' } }, groups: { visit: 'visit1 visit2 visit3', timing: "timing1 timing2 timing3" }, errorPlacement: function (error, element) { error.insertAfter(element); // ここが呼び出される if (element.attr("name") == "visit1" || element.attr("name") == "visit2" || element.attr("name") == "visit3") error.insertAfter("#visit_err"); if (element.attr("name") == "timing1" || element.attr("name") == "timing2" || element.attr("name") == "timing3") error.insertAfter("#timing_err"); if (element.attr("name") == "gender") error.insertAfter("#gender_err"); if (element.attr("name") == "agree") error.insertAfter("#agree_err"); }, submitHandler: function(form) { if ( $('#btn1').val() == '上記の内容で送信する' ){ $('#stwform').find(':input:not([type=button]):not([type=submit])').attr('disabled', false); $('#stwform').attr('action','?act=send'); form.submit(); }else{ $('#stwform').find(':input:not([type=button]):not([type=submit])').attr('disabled', true); $('#btn1').val('上記の内容で送信する'); $('.form_wrap-privacypolicy').hide(); console.log('ok'); $('#btn2').css('display','block'); } }, focusInvalid:"true" }); jQuery.validator.addMethod("airline_request", function(value, element) { var airline_request_flg = true; $('[id^=checkbox-airline]:checked').map(function(){ if ( $(this).val() == "希望がある" && !value ){ airline_request_flg = false; } }); return airline_request_flg; },'ご希望内容をご入力下さい' ); jQuery.validator.addMethod("mileage_other", function(value, element) { if ( $('[id^=radio-mileage]:checked').val() == "その他" && !value ){ return false; }else{ return true; } },'その他をご入力下さい' ); jQuery.validator.addMethod("airline_other", function(value, element) { var airline_other_flg = true; $('[id^=checkbox-airline]:checked').map(function(){ if ( $(this).val() == "その他" && !value ){ airline_other_flg = false; } }); return airline_other_flg; },'その他をご入力下さい' ); jQuery.validator.addMethod("experience_other", function(value, element) { if ( $('[id^=radio-experience]:checked').length > 0 && $('[id^=radio-experience]:checked').val().match(/^あり/) && !value ){ return false; }else{ return true; } },'クルーズ旅行経験をご入力下さい' ); jQuery.validator.addMethod("person_num", function(value, element) { if ( $('[id^=radio-person]:checked').val() == "決まっている" && !value ){ return false; }else{ return true; } },'ご旅行人数をご入力下さい' ); jQuery.validator.addMethod("budget_other", function(value, element) { if ( $('[id^=radio-budget]:checked').val() == "決まっている" && !value ){ return false; }else{ return true; } },'ご予算をご入力下さい' ); jQuery.validator.addMethod("departure_other", function(value, element) { if ( $('[id^=radio-departure]:checked').val() == "その他" && !value ){ return false; }else{ return true; } },'その他ご入力下さい' ); jQuery.validator.addMethod("intention_other", function(value, element) { var intention_other_flg = true; $('[id^=checkbox-intention]:checked').map(function(){ if ( $(this).val() == "その他" && !value ){ intention_other_flg = false; } }); return intention_other_flg; },'その他ご入力下さい' ); jQuery.validator.addMethod("hotel_other", function(value, element) { if ( $('[id^=radio-hotel]:checked').val() == "希望がある" && !value ){ return false; }else{ return true; } },'ホテルをご入力下さい' ); jQuery.validator.addMethod("area_other", function(value, element) { if ( $('[id^=radio-area]:checked').val() == "決まっている" && !value ){ return false; }else{ return true; } },'方面をご入力下さい' ); jQuery.validator.addMethod("katakana", function(value, element) { return this.optional(element) || /^[ア-ン゛゜ァ-ォャ-ョー「」、  ]+$/.test(value); }, "全角カタカナを入力してください" ); $('#btn2').click(function () { $('.form_wrap-privacypolicy').show(); $('#stwform').find(':input:not([type=button]):not([type=submit])').attr('disabled', false); $('#btn1').val('確認する'); $(this).hide(); });