/*============================================
■機 能: コンタクトフォーム処理全般
■概 要:
■更新日: 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 + '">' + '' + elemErrStr + '>');
}
else {
$('[name="' + baseSelectorName + '"]:last').after('<' + elemErrStr + ' id="' + targetSelctor + '">' + '' + elemErrStr + '>');
}
}
// 要素が単独
else {
$('[name="' + baseSelectorName + '"]').after('<' + elemErrStr + ' id="' + targetSelctor + '">' + '' + elemErrStr + '>');
}
}
$('#' + 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;
}