/*============================================ ■機 能: コンタクトフォーム処理全般 ■概 要: ■更新日: 2021/10/06 ■担 当: crew.miwa ■更新履歴: 2020/01/08:作成開始 2020/01/14:プログラムへの遷移時、複数要素に連なる項目が個別になってしまうバグの修正 2020/01/17:Google reCAPTCHAに対応、細かなバグを修正 2020/01/21:チェックボックスに対応 2020/03/03:同意ボタンが無い場合の対応追加 2020/03/04:完了画面AJax処理の追加 2021/10/06:hidden機能追加 ----------------------------------------------*/ //=============================== // 各設定項目 //------------------------------- // 各画面共通 var formId = 'contact_form'; // 対象フォームID var btnConfId = 'btn_conf'; // 確認ボタンID(入力画面) var btnBackId = 'btn_back'; // 戻りボタンID(確認画面) var btnCompId = 'btn_comp'; // 完了ボタンID(確認画面) var btnConfName = '確認する'; // 確認ボタン表示名(入力画面) var btnBackName = '戻る'; // 戻りボタン表示名(確認画面) var btnCompName = '送信する'; // 完了ボタン表示名(確認画面) var titleClass = 'item'; // タイトル名タグのclass var formObj; // Formデータ用オブジェクト var labelElemCssInitStr = 'label_'; // ラベル要素CSS頭文字 var pathProgramFile = 'https://juju-g.co.jp/juju/form_exec.php'; // プログラムファイルパス var pathCompFile = '/juju/contact_comp/'; // 完了ページファイルパス var strArraySplitStr = '、'; // 配列から文字列への分割用文字列 // reCAPTCHA var flgReCaptcha = false; // reCAPTCHAの利用有無 var nameRecaptcha = 'g-recaptcha-response'; // reCAPTCHA用フォーム名 var keyReCaptcha = ''; // reCAPTCHA用サイトキー // 各主要素名 var nameName = 'name'; // 名前 var nameNamePart = {}; nameNamePart[1] = 'name1'; // 名前 1つ目(複数版) nameNamePart[2] = 'name2'; // 名前 2つ目(複数版) var nameHiragana = 'hiragana'; // ひらがな(単独版) var nameHiraganaPart = {}; nameHiraganaPart[1] = 'hiragana1'; // ひらがな 1つ目(複数版) nameHiraganaPart[2] = 'hiragana2'; // ひらがな 2つ目(複数版) var nameKatakana = 'katakana'; // カタカナ(単独版) var nameKatakanaPart = {}; nameKatakanaPart[1] = 'katakana1'; // カタカナ 1つ目(複数版) nameKatakanaPart[2] = 'katakana2'; // カタカナ 2つ目(複数版) var nameZip = 'zip'; // 郵便番号(単独版) var nameZipPart = {}; nameZipPart[1] = 'zip1'; // 郵便番号 前半(複数版) nameZipPart[2] = 'zip2'; // 郵便番号 後半(複数版) var nameTel = 'tel'; // 電話番号(単独版) var nameTelPart = {}; nameTelPart[1] = 'tel1'; // 電話番号 1つ目(複数版) nameTelPart[2] = 'tel2'; // 電話番号 2つ目(複数版) nameTelPart[3] = 'tel3'; // 電話番号 3つ目(複数版) var nameEmail = 'email'; // E-mail var nameEmailConf = 'email_conf'; // E-mail(確認) var nameAddress = 'address'; // 住所(単独版) var nameAddressPart = {}; nameAddressPart[0] = 'pref'; // 県情報 nameAddressPart[1] = 'address1'; // 住所 1つ目(複数版) nameAddressPart[2] = 'address2'; // 住所 2つ目(複数版) nameAddressPart[3] = 'address3'; // 住所 3つ目(複数版) var titleAddressPart = '住所'; // 複数版 住所用タイトル var namePrivacyCheck = 'agree'; // プライバシーポリシーに同意(Class名) var flgPrivacyCheckHide = false; // プライバシーポリシーに同意動作で、確認ボタン非表示フラグ var nameCompPage = 'comp_page'; // 完了ページ var nameChkAction = 'form_action'; // 検証用 var inputOnlyCss = 'input_only'; // 入力画面のみ表示項目 // 確認画面 var confFormCss = 'form_conf'; // 確認画面用 非表示CSS var confTextCss = 'form_view'; // 確認画面用 入力内容確認用 // 完了画面 var flgCompAjax = false; // 完了画面をAJaxで処理するか var cssCompTarget = '.contact'; // 完了画面変更セレクター var strCompMsg = '
'; // 完了画面メッセージ strCompMsg += '

資料請求ありがとうございます。
'; strCompMsg += '送信完了いたしました。

'; strCompMsg += '
'; // 検証関連(全般) var elemErrStr = 'p'; // エラー文言用要素 var errElemIdInitStr = 'err_'; // エラー表示要素ID頭文字 var flgValid = true; // エラー検証結果フラグ(true:OK false:NG) var cssFormErr = 'form_err'; // フォーム要素エラー時のCSS名 var cssTopAjust = 'form_top'; // フォームTOP用CSS(スクロール動作時に使用)※デフォルトは無し var numTopAjust = 100; // エラーTOPの表示位置ズレ(スクロール動作時に使用) var strErrStrBefore = '※ '; // エラー文言の冒頭に付く文字列 var colorErrStr = '#d93025'; // エラー文言の色 var colorErrForm = '#fff0f5'; // エラーフォームの色 // 検証関連(CSS) var validHissuCss = 'valid_hissu'; // 検証:必須(CSS) var validNumCss = 'valid_num'; // 検証:数字(CSS) var validEmailCss = 'valid_email'; // 検証:E-mail(CSS) var validHiraganaCss = 'valid_hiragana'; // 検証:ひらがな(CSS) var validKatakanaCss = 'valid_katakana'; // 検証:カタカナ(CSS) var validTelCss = 'valid_tel'; // 検証:電話番号(CSS) var validZipCss = 'valid_zip'; // 検証:郵便番号(CSS) var validExcCss = 'valid_exc'; // 検証:例外として通常処理を行わない(CSS) // 検証関連(エラーメッセージ) var validHissuStr = '必須項目です。'; // 検証:必須(エラーメッセージ) var validNumStr = '入力形式が異なります。'; // 検証:数字(エラーメッセージ) var validEmailStr = '入力形式が異なります。'; // 検証:E-mail(エラーメッセージ) var validHiraganaStr = '入力形式が異なります。'; // 検証:ひらがな(エラーメッセージ) var validKatakanaStr = '入力形式が異なります。'; // 検証:カタカナ(エラーメッセージ) var validTelStr = '入力内容を確認下さい。'; // 検証:電話番号(エラーメッセージ) var validZipStr = '入力内容を確認下さい。'; // 検証:郵便番号(エラーメッセージ) var validSameStr = '内容が一致していません。'; // 検証:内容が不一致 /* // XSS対策 jQuery.ajaxPrefilter( function( s ) { if ( s.crossDomain ) { s.contents.script = false; } } ); */ //=============================== // 各動作処理 //------------------------------- $(function () { // 確認ボタン表示設定初期化 DispConfBtn(); // プライバシーポリシーに同意処理 $(document).on('click', '[name="' + namePrivacyCheck + '"]', function () { // 確認ボタン表示・非表示 DispConfBtn(); }); //テキストボックスのフォーカスが外れたら発動 $( 'input[type="tel"],' + 'input[type="email"],' + 'input[type="url"],' + 'input[type="number"]' ).blur(function () { // 全角から半角への変換処理 $(this).val(EditFullToHalfStr($(this).val())); }); // ラジオボタン2度押し選択解除 var radioChecked = []; $('input[type="radio"]:checked').each(function () { var name = $(this).attr('name'); radioChecked.push(name + '_' + $('input[name="' + name + '"]').index(this)); }); $('input[type="radio"]').click(function () { var name = $(this).attr('name'); var nameX = $.inArray(name + '_' + $('input[name="' + name + '"]').index(this), radioChecked); // チェックが存在する場合 if (nameX >= 0) { // // チェックを外す $(this).prop('checked', false); // radioCheckedからこのボタンのidを削除 radioChecked.splice(nameX, 1); } // チェックが存在しない場合 else { // 同じname属性のラジオボタンをradioCheckedから削除する var name = $(this).attr('name'); $('input[name="' + name + '"]').each(function () { var nameX2 = $.inArray(name + '_' + $('input[name="' + name + '"]').index(this), radioChecked); if (nameX2 >= 0) { radioChecked.splice(nameX2, 1); } }); // チェックしたものをradioCheckedに追加 radioChecked.push(name + '_' + $('input[name="' + name + '"]').index(this)); } }); // 確認ボタン処理 $(document).on('click', '#' + btnConfId, function () { // Form情報一覧を取得 formObj = GetFormValues(); // FORM要素エラーのカラーを初期化 $('.' + cssFormErr).css({ 'background-color': '' }); // FORM要素エラーCSSを初期化 $('#' + formId + ' *').removeClass(cssFormErr); // フォームTOP用スクロールセレクター情報をセット var posFormSelector = (cssTopAjust != '' ? '.' + cssTopAjust : '#' + formId); // バリデーションOK if (CheckValidation(formObj)) { // 確認画面 ConfPageAction(formObj); // フォームTOPにスクロール $('body,html').animate({ scrollTop: $(posFormSelector).offset().top - numTopAjust }, 500, 'swing'); } else { // フォーム内のエラー項目TOPにスクロール $('body,html').animate({ scrollTop: $('.' + cssFormErr + ':first').offset().top - numTopAjust }, 500, 'swing'); } }); // 戻りボタン処理 $(document).on('click', '#' + btnBackId, function () { // 戻り処理実行 BackPageAction(); // フォームTOP用スクロールセレクター情報をセット var posFormSelector = (cssTopAjust != '' ? '.' + cssTopAjust : '#' + formId); // フォームTOPにスクロール $('body,html').animate({ scrollTop: $(posFormSelector).offset().top - numTopAjust }, 500, 'swing'); }); // 完了ボタン処理 $(document).on('click', '#' + btnCompId, function () { if (!flgCompAjax) { // 完了処理実行 CompPageAction(formObj); } else { // 完了AJAX処理実行 CompAjaxAction(formObj); // フォームTOP用スクロールセレクター情報をセット var posFormSelector = (cssTopAjust != '' ? '.' + cssTopAjust : '#' + formId); // フォームTOPにスクロール $('body,html').animate({ scrollTop: $(posFormSelector).offset().top - numTopAjust }, 500, 'swing'); } }); // reCAPTCHA用処理 if (flgReCaptcha) { $('#' + formId).append( $('', { type: 'hidden', id: nameRecaptcha, name: nameRecaptcha } ) ); } }); // reCAPTCHAを利用の場合 if (flgReCaptcha) { } //=============================== // 各動作用関数群 //------------------------------- // 確認画面処理 function ConfPageAction(formObj) { $.each(formObj, function (name, objVal) { // 各FORM要素を非表示 FormElemHide(name); // 各FORM要素内容を表示形式で挿入 FormValDispShow(name, objVal['value']); // 入力画面のみの表示項目に確認画面に非表示フラグを追加 $('.' + inputOnlyCss).addClass(confFormCss); /* $('[name="' + name + '"]').addClass(confFormCss); // 関連ラベルを非表示 $('.' + labelElemCssInitStr + name).addClass(confFormCss); */ }); // 遷移ボタン変更 UpdateFormBtnConf(); } // 入力画面処理(戻り処理) function BackPageAction() { // FORM要素を表示 FormElemShow(); // FORM情報(テキスト形式)を非表示 FormValDispHide(); // 遷移ボタン変更 UpdateFormBtnInput(); } // 完了画面処理 function CompPageAction(formObj) { // FORM内を初期化(空にする) // $('#' + formId).empty(); $('.' + confFormCss).remove(); // FORM ACTION先の変更 $('#' + formId).attr('action', pathProgramFile); // FORMに要素追加 $.each(formObj, function (name, objVal) { //--------------------------------- // 複数要素に連なる項目を個別に対応 //--------------------------------- // 名前 if (name == nameNamePart[1]) { $('#' + formId).append( $('', { type: 'hidden', name: nameName + '[title]', value: objVal.title, } ) ); $('#' + formId).append( $('', { type: 'hidden', name: nameName + '[value]', value: formObj[nameNamePart[1]].value + ' ' + formObj[nameNamePart[2]].value, } ) ); } // ひらがな else if (name == nameHiraganaPart[1]) { $('#' + formId).append( $('', { type: 'hidden', name: nameHiragana + '[title]', value: objVal.title, } ) ); $('#' + formId).append( $('', { type: 'hidden', name: nameHiragana + '[value]', value: formObj[nameHiraganaPart[1]].value + ' ' + formObj[nameHiraganaPart[2]].value, } ) ); } // カタカナ else if (name == nameKatakanaPart[1]) { $('#' + formId).append( $('', { type: 'hidden', name: nameKatakana + '[title]', value: objVal.title, } ) ); $('#' + formId).append( $('', { type: 'hidden', name: nameKatakana + '[value]', value: formObj[nameKatakanaPart[1]].value + ' ' + formObj[nameKatakanaPart[2]].value, } ) ); } // 郵便番号 else if (name == nameZipPart[1]) { $('#' + formId).append( $('', { type: 'hidden', name: nameZip + '[title]', value: objVal.title, } ) ); $('#' + formId).append( $('', { type: 'hidden', name: nameZip + '[value]', value: formObj[nameZipPart[1]].value + '-' + formObj[nameZipPart[2]].value, } ) ); } // 電話番号 else if (name == nameTelPart[1]) { $('#' + formId).append( $('', { type: 'hidden', name: nameTel + '[title]', value: objVal.title, } ) ); $('#' + formId).append( $('', { type: 'hidden', name: nameTel + '[value]', value: formObj[nameTelPart[1]].value + '-' + formObj[nameTelPart[2]].value + '-' + formObj[nameTelPart[3]].value, } ) ); } // 住所 else if (name == nameAddressPart[0]) { $('#' + formId).append( $('', { type: 'hidden', name: nameAddress + '[title]', value: titleAddressPart, } ) ); $('#' + formId).append( $('', { type: 'hidden', name: nameAddress + '[value]', value: formObj[nameAddressPart[0]].value + ' ' + formObj[nameAddressPart[1]].value + ' ' + formObj[nameAddressPart[2]].value + ' ' + formObj[nameAddressPart[3]].value, } ) ); } // タイプがhiddenの場合 else if (objVal.type == 'hidden') { if (objVal.title) { $('#' + formId).append( $('', { type: 'hidden', name: name + '[title]', value: objVal.title, } ) ); $('#' + formId).append( $('', { type: 'hidden', name: name + '[value]', value: objVal.value, } ) ); } else { $('#' + formId).append( $('', { type: 'hidden', name: name, value: objVal.value, } ) ); } } // 複数項目の残りの項目以外 else if ( name != nameNamePart[2] && name != nameHiraganaPart[2] && name != nameKatakanaPart[2] && name != nameZipPart[2] && name != nameTelPart[2] && name != nameTelPart[3] && name != nameEmailConf && name != nameAddressPart[1] && name != nameAddressPart[2] && name != nameAddressPart[3] && name != namePrivacyCheck ) { $('#' + formId).append( $('', { type: 'hidden', name: name + '[title]', value: objVal.title, } ) ); // 配列 if (ValidArray(objVal.value)) { $('#' + formId).append( $('', { type: 'hidden', name: name + '[value]', value: objVal.value.join(strArraySplitStr), } ) ); } // 配列以外 else { $('#' + formId).append( $('', { type: 'hidden', name: name + '[value]', value: objVal.value, } ) ); } } }); // FORMに残り要素を追加 $('#' + formId).append( $('', { type: 'hidden', name: nameCompPage, value: pathCompFile, } ) ); $('#' + formId).append( $('', { type: 'hidden', name: nameChkAction, value: true, } ) ); // SUBMIT処理 $('#' + formId).submit(); } // 完了AJax処理 function CompAjaxAction(formObj) { // FORM内を初期化(空にする) $('.' + confFormCss).remove(); // FORM ACTION先の変更 $('#' + formId).attr('action', pathProgramFile); // 返値にDeferredオブジェクトをセット var returnVal = false; // AJax用オブジェクト初期化 var targetObj = {}; // FORMに要素追加 $.each(formObj, function (name, objVal) { //--------------------------------- // 複数要素に連なる項目を個別に対応 //--------------------------------- // 名前 if (name == nameNamePart[1]) { targetObj[nameName + '[title]'] = objVal.title; targetObj[nameName + '[value]'] = formObj[nameNamePart[1]].value + ' ' + formObj[nameNamePart[2]].value; } // ひらがな else if (name == nameHiraganaPart[1]) { targetObj[nameHiragana + '[title]'] = objVal.title; targetObj[nameHiragana + '[value]'] = formObj[nameHiraganaPart[1]].value + ' ' + formObj[nameHiraganaPart[2]].value; } // カタカナ else if (name == nameKatakanaPart[1]) { targetObj[nameKatakana + '[title]'] = objVal.title; targetObj[nameKatakana + '[value]'] = formObj[nameKatakanaPart[1]].value + ' ' + formObj[nameKatakanaPart[2]].value; } // 郵便番号 else if (name == nameZipPart[1]) { targetObj[nameZip + '[title]'] = objVal.title; targetObj[nameZip + '[value]'] = formObj[nameZipPart[1]].value + '-' + formObj[nameZipPart[2]].value; } // 電話番号 else if (name == nameTelPart[1]) { targetObj[nameTel + '[title]'] = objVal.title; targetObj[nameTel + '[value]'] = formObj[nameTelPart[1]].value + '-' + formObj[nameTelPart[2]].value + '-' + formObj[nameTelPart[3]].value; } // 住所 else if (name == nameAddressPart[0]) { targetObj[nameAddress + '[title]'] = titleAddressPart; targetObj[nameAddress + '[value]'] = formObj[nameAddressPart[0]].value + ' ' + formObj[nameAddressPart[1]].value + ' ' + formObj[nameAddressPart[2]].value + ' ' + formObj[nameAddressPart[3]].value; } // タイプがhiddenの場合 else if (objVal.type == 'hidden') { if (objVal.title) { targetObj[name + '[title]'] = objVal.title; targetObj[name + '[value]'] = objVal.value; } else { targetObj[name] = objVal.value; } } // 複数項目の残りの項目以外 else if ( name != nameNamePart[2] && name != nameHiraganaPart[2] && name != nameKatakanaPart[2] && name != nameZipPart[2] && name != nameTelPart[2] && name != nameTelPart[3] && name != nameEmailConf && name != nameAddressPart[1] && name != nameAddressPart[2] && name != nameAddressPart[3] && name != namePrivacyCheck ) { targetObj[name + '[title]'] = objVal.title; // 配列 if (ValidArray(objVal.value)) { targetObj[name + '[value]'] = objVal.value.join(strArraySplitStr); } // 配列以外 else { targetObj[name + '[value]'] = objVal.value; } } }); // FORMに残り要素を追加 targetObj[nameCompPage] = pathCompFile; targetObj[nameChkAction] = true; targetObj['target_selector'] = cssCompTarget; targetObj['target_value'] = strCompMsg; // AJax用フラグ要素を追加 targetObj['ajax'] = true; // AJax処理(jQueryのAJAXファンクションを利用) $.ajax({ url: pathProgramFile, type: 'POST', data: targetObj, dataType: 'json', error: function (XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest + "
" + textStatus + "
" + errorThrown); }, success: function (content) { // 結果用の値が取得できた場合 if (content['result'] == true) { // 対象セレクタがセットされている場合 if (content['target_selector']) { // 対象関数を再セット if (!content['target_function']) content['target_function'] = 'html'; if ($.isArray(content['target_selector'])) { $.each(content['target_selector'], function (i, value) { if (content['target_value'] && content['target_value'][i] != null) { // 情報の更新(アニメーション無し) $(content['target_selector'][i])[content['target_function']](content['target_value'][i]); } else { // 情報の更新(アニメーション無し) $(content['target_selector'][i])[content['target_function']](); } }); } else { if (content['target_value'] != null) { // 情報の更新(アニメーション無し) $(content['target_selector'])[content['target_function']](content['target_value']); } else { // 情報の更新(アニメーション無し) $(content['target_selector'])[content['target_function']](); } } } returnVal = true; } else if (content['err_url']) { window.location.href = content['err_url']; } } }); // console.log('comp'); return returnVal; } //=============================== // Form情報取得関数 //------------------------------- function GetFormValues() { // 各値を入れるオブジェクト var returnObj = new Object(); // テキストの値を取得 $("#" + formId + " input").each(function () { if ( this.type != 'submit' || this.type != 'button' || this.type != 'reset' || this.type != 'radio' || this.type != 'checkbox' || this.type != 'file' ) { returnObj[this.name] = new Object(); if ( this.type == 'tel' || this.type == 'email' || this.type == 'url' || this.type == 'number' ) { returnObj[this.name]['value'] = EscapeHTML(EditFullToHalfStr(this.value)); } else { returnObj[this.name]['value'] = EscapeHTML(this.value); } returnObj[this.name]['type'] = this.type; returnObj[this.name]['id'] = this.id; returnObj[this.name]['class'] = this.className; returnObj[this.name]['classList'] = this.className.split(' '); returnObj[this.name]['title'] = $(this).prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).data('item'); returnObj[this.name]['err'] = false; } }); // ラジオボタン $("#" + formId + " input:radio").each(function () { returnObj[this.name] = new Object(); returnObj[this.name]['value'] = EscapeHTML($('input[name=' + this.name + ']:checked').val()); returnObj[this.name]['value'] = (returnObj[this.name]['value'] != undefined ? returnObj[this.name]['value'] : ''); returnObj[this.name]['type'] = this.type; returnObj[this.name]['id'] = this.id; returnObj[this.name]['class'] = this.className; returnObj[this.name]['classList'] = this.className.split(' '); returnObj[this.name]['title'] = $(this).prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).data('item'); returnObj[this.name]['err'] = false; }); // チェックボックス $("#" + formId + " input:checkbox").each(function () { returnObj[this.name] = new Object(); returnObj[this.name]['value'] = []; $('input[name=' + this.name + ']:checked').each(function () { returnObj[this.name]['value'].push(EscapeHTML($(this).val())); }); returnObj[this.name]['type'] = this.type; returnObj[this.name]['id'] = this.id; returnObj[this.name]['class'] = this.className; returnObj[this.name]['classList'] = this.className.split(' '); returnObj[this.name]['title'] = $(this).prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).data('item'); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent('.' + titleClass).text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent('.' + titleClass).text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent('.' + titleClass).text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent('.' + titleClass).text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent('.' + titleClass).text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); returnObj[this.name]['err'] = false; }); // 選択された値を取得(プルダウン) $("#" + formId + " select").each(function () { returnObj[this.name] = new Object(); returnObj[this.name]['value'] = EscapeHTML(this.options[this.selectedIndex].value); returnObj[this.name]['type'] = 'select'; returnObj[this.name]['id'] = this.id; returnObj[this.name]['class'] = this.className; returnObj[this.name]['classList'] = this.className.split(' '); returnObj[this.name]['title'] = $(this).prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).data('item'); returnObj[this.name]['err'] = false; }); // テキストの値を取得 $("#" + formId + " textarea").each(function () { returnObj[this.name] = new Object(); returnObj[this.name]['value'] = EscapeHTML(this.value); returnObj[this.name]['type'] = 'textarea'; returnObj[this.name]['id'] = this.id; returnObj[this.name]['class'] = this.className; returnObj[this.name]['classList'] = this.className.split(' '); returnObj[this.name]['title'] = $(this).prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).parent().parent().parent().parent().parent().parent().parent().prevAll('.' + titleClass + ':first').text(); if (returnObj[this.name]['title'] == '') returnObj[this.name]['title'] = $(this).data('item'); returnObj[this.name]['err'] = false; }); return returnObj; } //=============================== // エラー検証関数 //------------------------------- function CheckValidation(formObj) { //------------------------------- // エラー文言を初期化 //------------------------------- $.each(formObj, function (name, objVal) { ErrInitStr(errElemIdInitStr + name, name); }); flgValid = true; //------------------------------- // 主項目 検証 //------------------------------- // ふりがな if (formObj[nameHiragana] && formObj[nameHiragana]['value'] != '') { if ( $.inArray(validHiraganaCss, formObj[nameHiragana]['classList']) !== -1 && !formObj[nameHiragana]['value'].match(/^([ぁ-んー]+)+$/) ) { ErrAddStr(errElemIdInitStr + nameHiragana, validHiraganaStr); formObj[nameHiragana]['err'] = true; flgValid = false; } } else if ( formObj[nameHiraganaPart[1]] && formObj[nameHiraganaPart[2]] ) { if ( formObj[nameHiraganaPart[1]]['value'] == '' || formObj[nameHiraganaPart[2]]['value'] == '' ) { if ( $.inArray(validHissuCss, formObj[nameHiraganaPart[1]]['classList']) !== -1 || $.inArray(validHissuCss, formObj[nameHiraganaPart[2]]['classList']) !== -1 ) { ErrAddStr(errElemIdInitStr + nameHiraganaPart[1], validHissuStr); if ($.inArray(validHissuCss, formObj[nameHiraganaPart[1]]['classList']) !== -1) formObj[nameHiraganaPart[1]]['err'] = true; if ($.inArray(validHissuCss, formObj[nameHiraganaPart[2]]['classList']) !== -1) formObj[nameHiraganaPart[2]]['err'] = true; flgValid = false; } } else { if ($.inArray(validHiraganaCss, formObj[nameHiraganaPart[1]]['classList']) !== -1) { if (!formObj[nameHiraganaPart[1]]['value'].match(/^([ぁ-んー]+)+$/)) { formObj[nameHiraganaPart[1]]['err'] = true; ErrAddStr(errElemIdInitStr + nameHiraganaPart[1], validHiraganaStr); flgValid = false; } } else if ($.inArray(validHiraganaCss, formObj[nameHiraganaPart[2]]['classList']) !== -1) { if (!formObj[nameHiraganaPart[2]]['value'].match(/^([ぁ-んー]+)+$/)) { formObj[nameHiraganaPart[2]]['err'] = true; if (!formObj[nameHiraganaPart[1]]['err']) { ErrAddStr(errElemIdInitStr + nameHiraganaPart[1], validHiraganaStr); flgValid = false; } } } } } // フリガナ if (formObj[nameKatakana] && formObj[nameKatakana]['value'] != '') { if ( $.inArray(validKatakanaCss, formObj[nameKatakana]['classList']) !== -1 && !formObj[nameKatakana]['value'].match(/^([ァ-ロワヲンー]+)+$/) ) { ErrAddStr(errElemIdInitStr + nameKatakana, validKatakanaStr); formObj[nameKatakana]['err'] = true; flgValid = false; } } /* else if ( formObj[nameKatakanaPart[1]] && formObj[nameKatakanaPart[2]] ) { if ( formObj[nameKatakanaPart[1]]['value'] == '' || formObj[nameKatakanaPart[2]]['value'] == '' ) { if ( $.inArray(validHissuCss, formObj[nameKatakanaPart[1]]['classList']) !== -1 || $.inArray(validHissuCss, formObj[nameKatakanaPart[2]]['classList']) !== -1 ) { ErrAddStr(errElemIdInitStr + nameKatakanaPart[1], validHissuStr); if ($.inArray(validHissuCss, formObj[nameKatakanaPart[1]]['classList']) !== -1) formObj[nameKatakanaPart[1]]['err'] = true; if ($.inArray(validHissuCss, formObj[nameKatakanaPart[2]]['classList']) !== -1) formObj[nameKatakanaPart[2]]['err'] = true; flgValid = false; } } else { if ($.inArray(validKatakanaCss, formObj[nameKatakanaPart[1]]['classList']) !== -1) { if (!formObj[nameKatakanaPart[1]]['value'].match(/^([ァ-ロワヲンー]+)+$/)) { formObj[nameKatakanaPart[1]]['err'] = true; ErrAddStr(errElemIdInitStr + nameKatakanaPart[1], validKatakanaStr); flgValid = false; } } else if ($.inArray(validKatakanaCss, formObj[nameKatakanaPart[2]]['classList']) !== -1) { if (!formObj[nameKatakanaPart[2]]['value'].match(/^([ァ-ロワヲンー]+)+$/)) { formObj[nameKatakanaPart[2]]['err'] = true; if (!formObj[nameKatakanaPart[1]]['err']) { ErrAddStr(errElemIdInitStr + nameKatakanaPart[1], validKatakanaStr); flgValid = false; } flgValid = false; } } } } */ else if (formObj[nameKatakanaPart[1]]) { if (formObj[nameKatakanaPart[1]]['value'] == '') { if ($.inArray(validHissuCss, formObj[nameKatakanaPart[1]]['classList']) !== -1) { ErrAddStr(errElemIdInitStr + nameKatakanaPart[1], validHissuStr); if ($.inArray(validHissuCss, formObj[nameKatakanaPart[1]]['classList']) !== -1) formObj[nameKatakanaPart[1]]['err'] = true; flgValid = false; } } else { if ($.inArray(validKatakanaCss, formObj[nameKatakanaPart[1]]['classList']) !== -1) { if (!formObj[nameKatakanaPart[1]]['value'].match(/^([ァ-ロワヲンー]+)+$/)) { formObj[nameKatakanaPart[1]]['err'] = true; ErrAddStr(errElemIdInitStr + nameKatakanaPart[1], validKatakanaStr); flgValid = false; } } } } else if (formObj[nameKatakanaPart[2]]) { if (formObj[nameKatakanaPart[2]]['value'] == '') { if ($.inArray(validHissuCss, formObj[nameKatakanaPart[2]]['classList']) !== -1) { ErrAddStr(errElemIdInitStr + nameKatakanaPart[2], validHissuStr); if ($.inArray(validHissuCss, formObj[nameKatakanaPart[2]]['classList']) !== -1) formObj[nameKatakanaPart[2]]['err'] = true; flgValid = false; } } else { if ($.inArray(validKatakanaCss, formObj[nameKatakanaPart[2]]['classList']) !== -1) { if (!formObj[nameKatakanaPart[2]]['value'].match(/^([ァ-ロワヲンー]+)+$/)) { formObj[nameKatakanaPart[2]]['err'] = true; ErrAddStr(errElemIdInitStr + nameKatakanaPart[2], validKatakanaStr); flgValid = false; } } } } // E-mail if (formObj[nameEmail] && formObj[nameEmail]['value'] != '') { if ( $.inArray(validEmailCss, formObj[nameEmail]['classList']) !== -1 && !ValidEmail(formObj[nameEmail]['value']) ) { ErrAddStr(errElemIdInitStr + nameEmail, validEmailStr); formObj[nameEmail]['err'] = true; flgValid = false; } } // E-mail(確認) if ( formObj[nameEmail] && formObj[nameEmail]['value'] != '' && formObj[nameEmailConf] && formObj[nameEmailConf]['value'] != '' ) { if ( $.inArray(validEmailCss, formObj[nameEmailConf]['classList']) !== -1 && !ValidEmail(formObj[nameEmailConf]['value']) ) { ErrAddStr(errElemIdInitStr + nameEmailConf, validEmailStr); formObj[nameEmailConf]['err'] = true; flgValid = false; } else if (formObj[nameEmail]['value'] != formObj[nameEmailConf]['value']) { ErrAddStr(errElemIdInitStr + nameEmailConf, validSameStr); formObj[nameEmailConf]['err'] = true; flgValid = false; } } // 電話番号 if (formObj[nameTel] && formObj[nameTel]['value'] != '') { if ( $.inArray(validTelCss, formObj[nameTel]['classList']) !== -1 && ( !formObj[nameTel]['value'].match(/^[0-9\-]+$/) ) ) { ErrAddStr(errElemIdInitStr + nameTel, validTelStr); formObj[nameTel]['err'] = true; flgValid = false; } } else if ( formObj[nameTelPart[1]] && formObj[nameTelPart[2]] && formObj[nameTelPart[3]] ) { if ( formObj[nameTelPart[1]]['value'] == '' || formObj[nameTelPart[2]]['value'] == '' || formObj[nameTelPart[3]]['value'] == '' ) { if ( $.inArray(validHissuCss, formObj[nameTelPart[1]]['classList']) !== -1 || $.inArray(validHissuCss, formObj[nameTelPart[2]]['classList']) !== -1 || $.inArray(validHissuCss, formObj[nameTelPart[3]]['classList']) !== -1 ) { ErrAddStr(errElemIdInitStr + nameTelPart[1], validHissuStr); if ($.inArray(validHissuCss, formObj[nameTelPart[1]]['classList']) !== -1) formObj[nameTelPart[1]]['err'] = true; if ($.inArray(validHissuCss, formObj[nameTelPart[2]]['classList']) !== -1) formObj[nameTelPart[2]]['err'] = true; if ($.inArray(validHissuCss, formObj[nameTelPart[3]]['classList']) !== -1) formObj[nameTelPart[3]]['err'] = true; flgValid = false; } } else { if ($.inArray(validTelCss, formObj[nameTelPart[1]]['classList']) !== -1) { var telVal = formObj[nameTelPart[1]]['value'] + formObj[nameTelPart[2]]['value'] + formObj[nameTelPart[3]]['value']; if ( !telVal.match(/^[0-9\-]+$/) || telVal.match(/^[0-9]+$/)[0].length < 10 || telVal.match(/^[0-9]+$/)[0].length > 12 ) { formObj[nameTelPart[1]]['err'] = true; formObj[nameTelPart[2]]['err'] = true; formObj[nameTelPart[3]]['err'] = true; ErrAddStr(errElemIdInitStr + nameTelPart[1], validTelStr); flgValid = false; } else if (!formObj[nameTelPart[1]]['value'].match(/^[0-9\-]+$/)) { formObj[nameTelPart[1]]['err'] = true; ErrAddStr(errElemIdInitStr + nameTelPart[1], validTelStr); flgValid = false; } else if (!formObj[nameTelPart[2]]['value'].match(/^[0-9\-]+$/)) { formObj[nameTelPart[2]]['err'] = true; if (!formObj[nameTelPart[1]]['err']) { ErrAddStr(errElemIdInitStr + nameTelPart[1], validTelStr); flgValid = false; } } else if (!formObj[nameTelPart[3]]['value'].match(/^[0-9\-]+$/)) { formObj[nameTelPart[3]]['err'] = true; if (!formObj[nameTelPart[1]]['err'] && !formObj[nameTelPart[2]]['err']) { ErrAddStr(errElemIdInitStr + nameTelPart[1], validTelStr); flgValid = false; } } } } } // 郵便番号 if (formObj[nameZip] && formObj[nameZip]['value'] != '') { if ( $.inArray(validZipCss, formObj[nameZip]['classList']) !== -1 && ( !formObj[nameZip]['value'].match(/^[0-9\-]+$/) ) ) { ErrAddStr(errElemIdInitStr + nameZip, validZipStr); formObj[nameZip]['err'] = true; flgValid = false; } } else if (formObj[nameZipPart[1]] && formObj[nameZipPart[2]]) { if (formObj[nameZipPart[1]]['value'] == '' || formObj[nameZipPart[2]]['value'] == '') { if ( $.inArray(validHissuCss, formObj[nameZipPart[1]]['classList']) !== -1 || $.inArray(validHissuCss, formObj[nameZipPart[2]]['classList']) !== -1 ) { ErrAddStr(errElemIdInitStr + nameZipPart[1], validHissuStr); if ($.inArray(validHissuCss, formObj[nameZipPart[1]]['classList']) !== -1) formObj[nameZipPart[1]]['err'] = true; if ($.inArray(validHissuCss, formObj[nameZipPart[2]]['classList']) !== -1) formObj[nameZipPart[2]]['err'] = true; flgValid = false; } } else { if ($.inArray(validZipCss, formObj[nameZipPart[1]]['classList']) !== -1) { var zipVal = formObj[nameZipPart[1]]['value'] + formObj[nameZipPart[2]]['value']; if (zipVal.match(/^[0-9]+$/)[0].length != 7) { formObj[nameZipPart[1]]['err'] = true; formObj[nameZipPart[2]]['err'] = true; ErrAddStr(errElemIdInitStr + nameZipPart[1], validZipStr); flgValid = false; } else if (!formObj[nameZipPart[1]]['value'].match(/^[0-9\-]+$/)) { formObj[nameZipPart[1]]['err'] = true; ErrAddStr(errElemIdInitStr + nameZipPart[1], validZipStr); flgValid = false; } else if (!formObj[nameZipPart[2]]['value'].match(/^[0-9\-]+$/)) { formObj[nameZipPart[2]]['err'] = true; if (!formObj[nameZipPart[1]]['err']) { ErrAddStr(errElemIdInitStr + nameZipPart[1], validZipStr); flgValid = false; } } } } } //------------------------------- // 残りの項目 検証 //------------------------------- $.each(formObj, function (name, objVal) { // CSSがセットがセットされている場合 if ( objVal['class'] != '' && objVal['err'] != true ) { // 検証:必須クラスが存在 if ( $.inArray(validHissuCss, objVal['classList']) !== -1 && $.inArray(validExcCss, objVal['classList']) === -1 && (!objVal['value'] || objVal['value'].length === 0) ) { ErrAddStr(errElemIdInitStr + name, validHissuStr); objVal['err'] = true; flgValid = false; } // 検証:数字クラスが存在 else if ( $.inArray(validNumCss, objVal['classList']) !== -1 && $.inArray(validExcCss, objVal['classList']) === -1 && !$.isNumeric(objVal['value']) ) { ErrAddStr(errElemIdInitStr + name, validNumStr); objVal['err'] = true; flgValid = false; } /* // 検証:ふりがな if ( $.inArray( validHiraganaCss, objVal['classList'] ) !== -1 && $.inArray( validExcCss, objVal['classList'] ) === -1 && ! objVal['value'].match(/^([ぁ-んー]+)+$/) ) { ErrAddStr ( errElemIdInitStr + name, validHiraganaStr ); objVal['err'] = true; flgValid = false; } // 検証:カタカナ if ( $.inArray( validKatakanaCss, objVal['classList'] ) !== -1 && $.inArray( validExcCss, objVal['classList'] ) === -1 && ! objVal['value'].match(/^([ァ-ロワヲンー]+)+$/) ) { ErrAddStr ( errElemIdInitStr + name, validKatakanaStr ); objVal['err'] = true; flgValid = false; } */ } // 対象FORMエラー if (objVal['err'] == true) { // エラーCSSを追加 ErrAddCss(name); } }); // 返り値を返す return flgValid; } // 入力文字列エスケープ処理 function EscapeHTML(str = '') { str = str.replace(/&/g, '&'); str = str.replace(//g, '>'); str = str.replace(/"/g, '"'); str = str.replace(/'/g, '''); return str; } // FORM要素エラーCSS追加 function ErrAddCss(targetName) { $('[name="' + targetName + '"]').addClass(cssFormErr); // 親要素がlabel要素の場合は、親要素もCSS追加 $('[name="' + targetName + '"]').parent("label").addClass(cssFormErr); // classが反映されない場合用に直接styleをセット $('.' + cssFormErr).css({ 'background-color': colorErrForm }); } // FORM要素エラー文言追加 function ErrAddStr(targetSelctor, addStr) { if (addStr != '') { if ($('#' + targetSelctor).text().length > 0) $('#' + targetSelctor).append('
'); // エラーメッセージに冒頭に文字列を追加してセット $('#' + targetSelctor).append('' + strErrStrBefore + addStr + ''); // idとclassが共存するタグの場合、class内容が反映されない為、IDに直接styleをセット $('#' + targetSelctor).css({ 'color': colorErrStr }); } } // FORM要素エラー文言要素の初期化 function ErrInitStr(targetSelctor, baseSelectorName) { // 存在しなければ、生成する if (!$('#' + targetSelctor).length) { // 要素が複数 if ($('[name="' + baseSelectorName + '"]').length > 1) { // 親要素がlabel if ($('[name="' + baseSelectorName + '"]:last').parent('label').length) { $('[name="' + baseSelectorName + '"]:last').parent('label').after('<' + elemErrStr + ' id="' + targetSelctor + '">' + ''); } else { $('[name="' + baseSelectorName + '"]:last').after('<' + elemErrStr + ' id="' + targetSelctor + '">' + ''); } } // 要素が単独 else { $('[name="' + baseSelectorName + '"]').after('<' + elemErrStr + ' id="' + targetSelctor + '">' + ''); } } $('#' + targetSelctor).text(''); } // FORM要素 - 表示設定 function FormElemShow() { // FORM要素内の全てを表示 $('#' + formId + ' *').removeClass(confFormCss); } // FORM要素 - 非表示設定 function FormElemHide(targetName) { // 各FORM要素を非表示 $('[name="' + targetName + '"]').addClass(confFormCss); // 関連ラベルを非表示 $('.' + labelElemCssInitStr + targetName).addClass(confFormCss); /* */ // 親要素がlabel要素の場合は、親要素もCSS追加 $('[name="' + targetName + '"]').parent("label").addClass(confFormCss); $('[name="' + targetName + '"] + label').addClass(confFormCss); } // FORM情報(テキスト形式)を表示 function FormValDispShow(targetName, addStr) { if (addStr != '') { // プライバシーポリシーの同意以外 if ( targetName != namePrivacyCheck && $('[name="' + targetName + '"]').attr('type') !== 'hidden' ) { // チェックボックス if ($('[name="' + targetName + '"]').attr('type') == 'checkbox') { // 配列を文字列に変換 var addStrArray = addStr.join(strArraySplitStr); // 対象要素の親要素がlabelの場合 if ($('[name="' + targetName + '"]:first').parent("label")) { $('[name="' + targetName + '"]:first').parent("label").after('' + addStrArray + ''); } else { $('[name="' + targetName + '"]:first').after('' + addStrArray + ''); } } // ラジオボタン else if ($('[name="' + targetName + '"]').attr('type') === 'radio') { if ($('[name="' + targetName + '"]:first').parent("label")) { $('[name="' + targetName + '"]:first').parent("label").after('' + addStr + ''); } else { $('[name="' + targetName + '"]:first').after('' + addStr + ''); } } // 上記以外 else { // 改行は表示用に改行コードに変換 $('[name="' + targetName + '"]').after('' + addStr.replace(/\r?\n/g, '
') + '
'); } } } } // FORM情報(テキスト形式)を非表示 function FormValDispHide() { $('.' + confTextCss).remove(); } // 入力ページ - ボタン設定 function UpdateFormBtnInput() { // 確認ページ遷移ボタンを追加 $('#' + btnCompId).after(function () { var btnClassName = ($(this).attr('class') ? 'class="' + $(this).attr('class') + '"' : ''); if ($(this).prop('tagName') == 'a') { return '' + btnConfName + ''; } else { return ''; } }); // 戻りボタン、完了ボタンを削除 $('#' + btnBackId).remove(); $('#' + btnCompId).remove(); } // 確認ページ - ボタン設定 function UpdateFormBtnConf() { // 戻りボタン、完了ボタンを追加 $('#' + btnConfId).after(function () { var btnClassName = ($(this).attr('class') ? 'class="' + $(this).attr('class') + '"' : ''); if ($(this).prop('tagName') == 'a') { return '' + btnBackName + '' + '' + btnCompName + ''; } else { return '' + ''; } }); // 確認ページ遷移ボタンを削除 $('#' + btnConfId).remove(); } // 確認ボタンの表示設定変更(入力画面) function DispConfBtn() { // プライバシーポリシーに同意にチェックされている場合、または同意ボタンが無い場合 if ( $('[name="' + namePrivacyCheck + '"]').prop("checked") == true || !$('[name="' + namePrivacyCheck + '"]').length ) { // 確認ボタン非表示フラグ if (flgPrivacyCheckHide) { // 確認ボタン表示 $('#' + btnConfId).show(); } else { // 確認ボタン有効 $('#' + btnConfId).prop('disabled', false); } } else { // 確認ボタン非表示フラグ if (flgPrivacyCheckHide) { // 確認ボタン非表示 $('#' + btnConfId).hide(); } else { // 確認ボタン無効 $('#' + btnConfId).prop('disabled', true); } } } //=============================== // 各検証関数 //------------------------------- // E-mail 検証 function ValidEmail(email) { return (email.match(/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/) ? true : false); } // 配列 検証 function ValidArray(object) { return (Object.prototype.toString.call(object) === '[object Array]' ? true : false); } //=============================== // 文字列変換関数 //------------------------------- // 全角英数字記号を半角に変換 function EditFullToHalfStr(str) { var returnVal = str.replace(/[A-Za-z0-9-!"#$%&'()=<>,.?_[]{}@^~¥]/g, function (s) { return String.fromCharCode(s.charCodeAt(0) - 0xFEE0); }); return returnVal; }