//전화번호 자동 설정
function inputPhoneNumber(obj) {
$(obj).val($(obj).val().replace(/[^0-9]/g, "").replace(/(^02|^0505|^1[0-9]{3}|^0[0-9]{2})([0-9]+)?([0-9]{4})/, "$1-$2-$3").replace("--", "-"));
}
//사업자번호 자동 설정
function bizNoFormatter(obj) {
$(obj).val($(obj).val().replace(/[^0-9]/g, "").replace(/(\d{3})(\d{2})(\d{5})/, '$1-$2-$3'));
}
//영문만 입력받기
function onlyAlphabet(obj) {
$(obj).val($(obj).val().replace(/[^a-z0-9]/g, ""));
}
//숫자만 입력받기
function onlyNumber(obj) {
$(obj).val($(obj).val().replace(/[^0-9]/g, ""));
}
//판매가격 입력받기
function onlyPrice(obj) {
var val = $(obj).val().replace(/[^0-9]/g, "");
$(obj).val(numberFormat(val));
}
//휴대전화번호 체크
function isCellPhone(p) {
p = p.split('-').join('');
var regPhone = /^((01[1|6|7|8|9])[1-9]+[0-9]{6,7})|(010[1-9][0-9]{7})$/;
return regPhone.test(p);
}
//0~100까지 퍼센트 입력
function percentInput(obj) {
var val = obj.value;
val = val.replace(/(^0+)/, "");
if (val > 100) {
val = 100;
} else if (val < 0) {
val = 0;
}
obj.value = val;
}
//이메일 형식확인
$("input[data-event='email_check']").keyup(function () {
//검사시작
var email_val = $(this).val();
if (email_val == '') {
validateInput(this, '', '')
return;
}
var filter = /^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/;
if (filter.test(email_val) == false) {
validateInput(this, 'danger', '이메일 형식에 맞게 입력해주세요.')
return;
} else {
validateInput(this, 'success', '사용가능한 이메일 입니다.');
}
});
//이메일 중복확인
$("input[data-event='email_check']").focusout(function () {
//검사시작
var email_val = $(this).val();
if (email_val == '') {
validateInput(this, '', '')
return;
}
var data = {
'email': email_val
};
$.ajax({
url: baseUrl + '/action?name=account_email_check',
type: 'POST',
data: data,
dataType: 'json',
success: function (response) {
let meta = response['meta'];
let data = response['data'];
if (meta['state'] == 'success') {
validateInput('#email', 'success', meta['message']);
$('.email-check-btn').attr('disabled', false);
} else {
validateInput('#email', 'danger', meta['message']);
$('.email-check-btn').attr('disabled', true);
}
},
beforeSend: function () {
},
complete: function () {
},
error: function (e) {
}
});
});
//스위치 버튼
function useSwitch(name) {
if ($('#' + name + '0').is(':checked')) {
$('#' + name + '0').prop("checked", false);
$('#' + name + '1').prop("checked", true);
return;
}
if ($('#' + name + '1').is(':checked')) {
$('#' + name + '1').prop("checked", false);
$('#' + name + '0').prop("checked", true);
return;
}
}
//폼 빈값 검사
function input_check(input, msg) {
console.log(input);
if(input.length==0){
return true;
}
if (input.val() == '' || input.val() == null) {
alertSet(msg, 'warning', function () {
setTimeout(function () {
$(input).focus();
}, 200);
});
return false;
} else {
return true;
}
}
//폼데이터 ajax 전송
var form_check = new Object();
function submitForm(form, method, url, location, msg, func) {
form = typeof form !== 'undefined' ? form : '';
method = typeof method !== 'undefined' ? method : 'POST';
location = typeof location !== 'undefined' ? location : 'reload';
msg = typeof msg !== 'undefined' ? msg : '';
func = typeof func !== 'undefined' ? func : '';
//폼데이터 검사
for (var key in form_check) {
if (typeof form_check[key] === 'function') {
if (form_check[key]() == false) return;
}
}
var submitData = '';
if (form != '') {
form = $(form)[0];
submitData = new FormData(form);
}
$.ajax({
url: url,
processData: false,
contentType: false,
data: submitData,
type: method,
dataType: 'json',
success: function (response) {
if (typeof func === 'function') {
func(response);
} else {
let meta = response['meta'];
let data = response['data'];
if (meta['state'] == 'success') {
if (msg != '') {
alertSet(msg, 'success', '#');
}
if (location == 'reload') {
window.location.reload();
}
else if (location == 'referrer') {
history.back();
}
else if (location == 'N') {
}
else {
window.location.href = location;
}
} else {
// alert(meta['message']);
}
}
},
beforeSend: function () {
$('.loaderFull').addClass('loaderFullActive');
},
complete: function () {
$('.loaderFull').removeClass('loaderFullActive');
},
error: function (e) {
}
});
}
//파일삭제
function deleteFileConfirm(id, tableName, inputName, pid) {
confirmSet('파일을 삭제하시겠습니까?', 'info', function () {
deleteFile(id, tableName, inputName, pid);
});
}
function deleteFile(id, tableName, inputName, pid) {
postData = { "id": id, "tableName": tableName, "inputName": inputName, "pid": pid };
$.ajax({
url: baseUrl + '/board/file/delete',
type: 'POST',
data: postData,
dataType: 'json',
success: function (response) {
let meta = response['meta'];
if (meta['state'] == 'success') {
alertSet('정상적으로 처리되었습니다.', 'success', window.location.href);
} else {
alertSet('잘못된 요청입니다.', 'error', '#');
}
},
beforeSend: function () {
$('.loaderFull').addClass('loaderFullActive');
},
complete: function () {
$('.loaderFull').removeClass('loaderFullActive');
},
error: function (e) {
alert('error')
console.log(e);
}
});
}
//파일삭제 리로드 안함
function deleteFileConfirm2(id, inputName) {
confirmSet('파일을 삭제하시겠습니까?', 'info', function () {
deleteFile2(id, inputName);
});
}
function deleteFile2(id, inputName) {
postData = { "id": id };
$.ajax({
url: baseUrl + '/action?name=file_delete',
type: 'POST',
data: postData,
dataType: 'json',
success: function (response) {
let meta = response['meta'];
if (meta['state'] == 'success') {
alertSet('정상적으로 처리되었습니다.', 'success', '#');
$('.preview-' + inputName + ' .preview-file-name').text('');
$('.preview-' + inputName + ' .preview-file-box').removeClass('active');
} else {
alertSet('잘못된 요청입니다.', 'error', '#');
}
},
beforeSend: function () {
$('.loaderFull').addClass('loaderFullActive');
},
complete: function () {
$('.loaderFull').removeClass('loaderFullActive');
},
error: function (e) {
alert('error')
console.log(e);
}
});
}
//파일삭제 리로드 안함(멀티)
function deleteFileConfirm3(id, inputName, formId, formGroup) {
confirmSet('파일을 삭제하시겠습니까?', 'info', function () {
deleteFile3(id, inputName, formId, formGroup);
});
}
function deleteFile3(id, inputName, formId, formGroup) {
postData = { "id": id };
$.ajax({
url: baseUrl + '/action?name=file_delete',
type: 'POST',
data: postData,
dataType: 'json',
success: function (response) {
let meta = response['meta'];
if (meta['state'] == 'success') {
alertSet('정상적으로 처리되었습니다.', 'success', '#');
$('.preview-' + inputName + ' .preview-file-name').text('');
$('.preview-' + inputName + ' .preview-file-box').removeClass('active');
$('.preview-' + inputName + ' .preview-file-box .remove-file').remove();
console.log(formId + ' .multi-file-' + formGroup);
multiFileLabelCheck2(formId + ' .multi-file-' + formGroup);
} else {
alertSet('잘못된 요청입니다.', 'error', '#');
}
},
beforeSend: function () {
$('.loaderFull').addClass('loaderFullActive');
},
complete: function () {
$('.loaderFull').removeClass('loaderFullActive');
},
error: function (e) {
alert('error')
console.log(e);
}
});
}
//파일 업로드 미리보기 이미지 경로
function readURL(input, preview) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
var fileResult = e.target.result;
// console.log(fileResult)
if (fileResult.indexOf('data:application/pdf;base64') != -1) {
// $(preview).css('background-image', 'url(https://www.thenfapost.com/wp-content/uploads/2020/08/unnamed-2.png)');
$(preview).html("");
} else {
$(preview).empty();
$(preview).css('background-image', 'url(' + fileResult + ')');
}
}
reader.readAsDataURL(input.files[0]);
}
}
//파일업로드시 파일이름 출력
function getFileTitle(input, target) {
var fileNme = input.files[0].name;
$(target).val(fileNme);
}
//파일업로드시 파일이름 출력 (커스텀)
function getFileTitle2(input, target) {
var fileNme = input.files[0].name;
$(target + ' .preview-file-box').addClass('active');
$(target).closest('.upload-preview').addClass('active');
$(target + ' .preview-file-name').text(fileNme);
}
//파일 프리뷰 파일이름 삭제
function resetFileTitle(inputName) {
$('#input' + inputName + '').val();
$('.preview-' + inputName + ' .preview-file-name').text('');
$('.preview-' + inputName + ' .preview-file-box').removeClass('active');
$(target).closest('.upload-preview').removeClass('active');
}
//파일 프리뷰 파일이름 삭제 (폼지정)
function resetFileTitle2(formId, inputName) {
var fileDom = $(formId + '_input_' + inputName);
var agent = navigator.userAgent.toLowerCase();
//파일초기화
if ((navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1) || (agent.indexOf("msie") != -1)) {
fileDom.replaceWith(fileDom.clone(true));
} else {
fileDom.val("");
}
//미리보기 초기화
$('.preview-' + inputName + ' .preview-file-name').text('');
$('.preview-' + inputName + ' .preview-file-box').removeClass('active');
}
//파일 업로드 용량 체크
function fileSizeCheck(formId, inputName, fileGroup, maxSize) {
var fileInput = formId + '_input_' + inputName;
maxSize = typeof maxSize !== 'undefined' ? maxSize : 10;
if ($(fileInput).val() != "") {
var fileSize = $(fileInput)[0].files[0].size;
var fileSizeMB = (fileSize / 1024 / 1024).toFixed(2);
var maxSizeByte = maxSize * 1024 * 1024; //2MB
if (fileSize > maxSizeByte) {
alertSet('첨부파일 사이즈는 ' + maxSize + 'MB 이내로 등록 가능합니다.
업로드한 파일: ' + fileSizeMB + 'MB', 'warning', '#');
resetFileTitle2(formId, inputName); multiFileLabelCheck2(formId + ' .multi-file-' + fileGroup);
return false;
}
}
}
//파일 업로드 확장자 체크
function fileExtCheck(formId, inputName, fileGroup, ext) {
var fileInput = formId + '_input_' + inputName;
ext = typeof ext !== 'undefined' ? ext = ext.split(",") : ["jpg", "jpeg", "png"];
if ($(fileInput).val() != "") {
var fileExt = $(fileInput).val().split(".").pop().toLowerCase();
if ($.inArray(fileExt, ext) == -1) {
alertSet('지원하지 않는 파일 확장자입니다. (' + fileExt + ')', 'warning', '#');
resetFileTitle2(formId, inputName); multiFileLabelCheck2(formId + ' .multi-file-' + fileGroup);
return false;
}
}
}
//멀티 파일 체크
function multiFileLabelCheck(target) {
console.log(target);
$(target + ' .upload-label-btn').removeClass('active');
var labels = $(target).find('.upload-label-btn');
var inputs = $(target).find('input');
var preview_file_box = $(target + ' .preview-box').find('.preview-file-box');
// console.log(labels);
// console.log(preview_file_box);
for (i = 0; i < preview_file_box.length; i++) {
var isActive = $(preview_file_box[i]).hasClass('active');
if (isActive) {
$(labels[i]).addClass('isset');
$(preview_file_box[i]).closest('.upload-preview').addClass('active');
} else {
$(labels[i]).removeClass('isset');
}
}
for (i = 0; i < labels.length; i++) {
var lastNum = labels.length - 1;
var isSet = $(labels[i]).hasClass('isset');
if (!isSet) {
$(labels[i]).addClass('active');
break;
}
if (i == lastNum) {
$(labels[i]).after('')
} else {
$(target + ' .block-upload').remove();
}
}
}
//멀티 파일 체크
function multiFileLabelCheck2(target) {
$(target + ' .upload-label-btn').removeClass('active');
$(target + ' .upload-label-btn.complete').remove();
var labels = $(target).find('.upload-label-btn');
var inputs = $(target).find('input');
var preview_file_box = $(target + ' .preview-box').find('.preview-file-box');
for (i = 0; i < preview_file_box.length; i++) {
var isActive = $(preview_file_box[i]).hasClass('active');
var input_id = $(preview_file_box[i]).closest('.preview-box').find('input').attr('id');
if (isActive) {
$(target + ' .upload-label label[for=' + input_id).addClass('isset');
$(preview_file_box[i]).closest('.upload-preview').addClass('active');
} else {
$(target + ' .upload-label label[for=' + input_id).removeClass('isset');
}
}
//파일 수량체크
var isSetCount = 0;
var targetCount = $(target).parent().parent().prev().find('span.file-count');
var targetMax = $(target).parent().parent().prev().find('span.file-maxcount');
targetMax.text(labels.length); // 파일 최대수량 출력
var upload_complete_label = ``;
//멀티파일 등록 체크
for (i = 0; i < labels.length; i++) {
var lastNum = labels.length - 1;
var isSet = $(labels[i]).hasClass('isset');
if (isSet == true) {
isSetCount++;
}
targetCount.text(isSetCount); // 파일 수량 출력
if (!isSet) {
let labelFor = $(labels[i]).attr('for');
$(labels[i]).addClass('active');
var empty_labels = $(target).find('.upload-label-btn:not(.isset)');
$(empty_labels).toArray().forEach(function (label) {
var empty_labelFor = $(label).attr('for');
let target_preview_box = $(target + ' #' + empty_labelFor).closest('.preview-box');
var previewBoxOuterHtml = $(target + ' #' + empty_labelFor).closest('.preview-box').prop('outerHTML');
$(target_preview_box).remove();
$(target + ' .upload-preview').append(previewBoxOuterHtml);
});
break;
}
if (i == lastNum) {
$(labels[i]).after(upload_complete_label)
} else {
$(target + ' .upload-label-btn.complete').remove();
}
}
}
//인증 결과
function validateInput(ob, state, msg) {
$(ob).parents('.form-group').find('.helper-text').remove(); //초기화
$(ob).parents('.form-group').append('