초기 커밋: 5130 레거시 시스템
- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
This commit is contained in:
560
member/write_form.php
Normal file
560
member/write_form.php
Normal file
@@ -0,0 +1,560 @@
|
||||
<?php
|
||||
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");
|
||||
|
||||
if (!isset($_SESSION["level"]) || intval($_SESSION["level"]) > 1) {
|
||||
sleep(1);
|
||||
header("Location:" . $WebSite . "login/login_form.php");
|
||||
exit;
|
||||
}
|
||||
include $_SERVER['DOCUMENT_ROOT'] . '/load_header.php';
|
||||
$title_message = '회원관리(등록/수정)';
|
||||
?>
|
||||
|
||||
<?php include $_SERVER['DOCUMENT_ROOT'] . '/mymodal.php'; ?>
|
||||
|
||||
<?php
|
||||
isset($_REQUEST["num"]) ? $num = $_REQUEST["num"] : $num = '';
|
||||
isset($_REQUEST["mode"]) ? $mode = $_REQUEST["mode"] : $mode = '';
|
||||
|
||||
// corp.json 파일에서 소속 목록 불러오기
|
||||
$corpFile = $_SERVER['DOCUMENT_ROOT'] . '/member/corp.json';
|
||||
$corpData = [];
|
||||
if (file_exists($corpFile)) {
|
||||
$corpJson = file_get_contents($corpFile);
|
||||
$corpData = json_decode($corpJson, true);
|
||||
if (!is_array($corpData)) { $corpData = []; }
|
||||
}
|
||||
|
||||
// part.json 파일에서 부서 목록 불러오기
|
||||
$partFile = $_SERVER['DOCUMENT_ROOT'] . '/member/part.json';
|
||||
$partData = [];
|
||||
if (file_exists($partFile)) {
|
||||
$partJson = file_get_contents($partFile);
|
||||
$partData = json_decode($partJson, true);
|
||||
if (!is_array($partData)) {
|
||||
$partData = [];
|
||||
}
|
||||
}
|
||||
|
||||
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
|
||||
$pdo = db_connect();
|
||||
|
||||
if ($mode == 'modify') {
|
||||
try {
|
||||
$sql = "select * from " . $DB . ".member where num = ? ";
|
||||
$stmh = $pdo->prepare($sql);
|
||||
$stmh->bindValue(1, $num, PDO::PARAM_STR);
|
||||
$stmh->execute();
|
||||
$count = $stmh->rowCount();
|
||||
$row = $stmh->fetch(PDO::FETCH_ASSOC); // $row 배열로 DB 정보를 불러온다.
|
||||
|
||||
include '_row.php';
|
||||
|
||||
} catch (PDOException $Exception) {
|
||||
print "오류: " . $Exception->getMessage();
|
||||
}
|
||||
} else {
|
||||
$num = '';
|
||||
$id = '';
|
||||
$pass = '';
|
||||
$name = '';
|
||||
$nick = NULL;
|
||||
$hp = NULL;
|
||||
$email = NULL;
|
||||
$regist_day = NULL;
|
||||
$lv = NULL;
|
||||
$authority = NULL;
|
||||
$eworks_lv = 4;
|
||||
$division = NULL;
|
||||
$position = NULL;
|
||||
$part = NULL;
|
||||
$numorder = NULL;
|
||||
$lv = '4';
|
||||
$mode = 'insert';
|
||||
$address = '';
|
||||
$card_company = '';
|
||||
$card_number = '';
|
||||
$pay_bank = '';
|
||||
$pay_account = '';
|
||||
$pay_holder = '';
|
||||
}
|
||||
?>
|
||||
|
||||
<title> <?=$title_message?> </title>
|
||||
<style>
|
||||
.table-hover tbody tr:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<div class="container-fluid">
|
||||
<div class="d-flex justify-content-center align-items-center">
|
||||
<div class="col-12 text-center">
|
||||
<div class="card align-middle">
|
||||
<div class="card" style="padding:10px;margin:10px;">
|
||||
<h4 class="card-title text-center" style="color:#113366;"> 회원등록/수정 </h4>
|
||||
</div>
|
||||
<div class="card-body text-center">
|
||||
<form id="board_form" name="board_form" class="form-signin" method="post">
|
||||
<input type="hidden" id="mode" name="mode" value="<?=$mode?>">
|
||||
<input type="hidden" id="num" name="num" value="<?=$num?>">
|
||||
<table class="table table-bordered">
|
||||
<tr>
|
||||
<td>* 성명</td>
|
||||
<td>
|
||||
<input type="text" id="name" name="name" value="<?=$name?>" class="form-control" required>
|
||||
</td>
|
||||
<td>* id</td>
|
||||
<td>
|
||||
<input type="text" id="id" name="id" value="<?=$id?>" class="form-control" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>* password</td>
|
||||
<td>
|
||||
<input type="text" id="pass" name="pass" value="<?=$pass?>" class="form-control" required>
|
||||
</td>
|
||||
<td>연락처 HP</td>
|
||||
<td>
|
||||
<input type="text" id="hp" name="hp" value="<?=$hp?>" class="form-control">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>* 레벨</td>
|
||||
<td>
|
||||
<input type="text" id="lv" name="lv" value="<?=$lv?>" class="form-control" >
|
||||
</td>
|
||||
<td class="text-success fw-bold"> Email</td>
|
||||
<td>
|
||||
<input type="text" id="email" name="email" value="<?=$email?>" class="form-control text-start" style="font-size: 0.8rem!important; " placeholder="Email @형태" required>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td>* 회사(소속)</td>
|
||||
<td>
|
||||
<select id="division" name="division" class="form-select" style="font-size: 0.8rem; height: 32px;">
|
||||
<option value=""><?= "(소속)" ?></option>
|
||||
<?php foreach($corpData as $corp): ?>
|
||||
<option value="<?= htmlspecialchars($corp, ENT_QUOTES, 'UTF-8') ?>" <?= (isset($division) && $division === $corp) ? 'selected' : '' ?>>
|
||||
<?= htmlspecialchars($corp, ENT_QUOTES, 'UTF-8') ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</td>
|
||||
<td>* 부서(파트)</td>
|
||||
<td>
|
||||
<select id="part" name="part" class="form-select" style="font-size: 0.8rem; height: 32px;">
|
||||
<option value=""><?= "(부서)" ?></option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>* 직위</td>
|
||||
<td>
|
||||
<input type="text" id="position" name="position" value="<?=$position?>" class="form-control">
|
||||
</td>
|
||||
<td> 회계권한 </td>
|
||||
<td class="text-center">
|
||||
<select id="authority" name="authority" class="form-select" style="font-size: 0.8rem; height: 32px;">
|
||||
<option value="" <?= ($authority == '') ? 'selected' : '' ?>>선택</option>
|
||||
<option value="ACCOUNT" <?= ($authority == 'ACCOUNT') ? 'selected' : '' ?>>ACCOUNT</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>번호순서 Numorder</td>
|
||||
<td>
|
||||
<input type="text" id="numorder" name="numorder" value="<?=$numorder?>" class="form-control">
|
||||
</td>
|
||||
|
||||
<td>전자결재 eworks_lv</td>
|
||||
<td>
|
||||
<select id="eworks_lv" name="eworks_lv" class="form-select" style="font-size: 0.8rem; height: 32px;">
|
||||
<option value="1" <?= ($eworks_lv == '1') ? 'selected' : '' ?>>1</option>
|
||||
<option value="2" <?= ($eworks_lv == '2') ? 'selected' : '' ?>>2</option>
|
||||
<option value="3" <?= ($eworks_lv == '3') ? 'selected' : '' ?>>3</option>
|
||||
<option value="4" <?= ($eworks_lv == '4') ? 'selected' : '' ?>>4</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>* 1차 결재</td>
|
||||
<td>
|
||||
<select id="firstApprovalSelect" class="form-select" style="font-size: 0.8rem; height: 32px;">
|
||||
<option value=""><?= "(1차 결재권자)" ?></option>
|
||||
<?php
|
||||
// eworks_lv가 1 또는 2인 회원 목록을 불러옴
|
||||
$sqlmember = "SELECT id, name FROM {$DB}.member WHERE eworks_lv IN ('1','2') ORDER BY name ASC";
|
||||
$memberstmt = $pdo->query($sqlmember);
|
||||
while ($members = $memberstmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
?>
|
||||
<option value="<?= htmlspecialchars($members['id'], ENT_QUOTES, 'UTF-8') ?>"
|
||||
<?= (isset($first_approval_id) && $first_approval_id === $members['id']) ? 'selected' : '' ?>>
|
||||
<?= htmlspecialchars($members['name'], ENT_QUOTES, 'UTF-8') ?>
|
||||
</option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</td>
|
||||
<td>* 1차 결재 ID</td>
|
||||
<td>
|
||||
<input type="hidden" id="first_approval_name" name="first_approval_name" class="form-control" readonly style="font-size: 0.9rem; height: 32px;" value="<?= isset($first_approval_name) ? $first_approval_name : '' ?>">
|
||||
<!-- 실제 결재권자 ID 저장 (hidden) -->
|
||||
<input type="hidden" id="first_approval_id" name="first_approval_id" value="<?= isset($first_approval_id) ? $first_approval_id : '' ?>">
|
||||
<!-- 화면에 표시되는 아이디(개인정보 보호를 위해 마스킹 처리) -->
|
||||
<input type="text" id="firstApprovalDisplay" class="form-control mt-1" readonly style="font-size: 0.9rem; height: 32px;" value="<?= isset($first_approval_id) && $first_approval_id != '' ? '****' : '' ?>">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-primary fw-bold"> 입사일 </td>
|
||||
<td>
|
||||
<input type="date" id="enterDate" name="enterDate" value="<?=$enterDate?>" class="form-control">
|
||||
</td>
|
||||
<td class="text-danger fw-bold"> 퇴사일 </td>
|
||||
<td>
|
||||
<input type="date" id="quitDate" name="quitDate" value="<?=$quitDate?>" class="form-control">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> 생일(축하금 지급일) </td>
|
||||
<td colspan="1">
|
||||
<div class="d-flex justify-content-start align-items-center">
|
||||
<input type="date" id="birthday" name="birthday" value="<?=$birthday?>" class="form-control w100px mx-1">
|
||||
<label class="form-check-label mx-1">
|
||||
<input type="radio" name="birthday_type" class="form-check-input" value="양력" <?= ($birthday_type == '양력') ? 'checked' : '' ?>> 양력
|
||||
</label>
|
||||
<label class="form-check-label mx-1">
|
||||
<input type="radio" name="birthday_type" class="form-check-input" value="음력" <?= ($birthday_type == '음력') ? 'checked' : '' ?>> 음력
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
<td> 주민번호 </td>
|
||||
<td colspan="1">
|
||||
<input type="text" id="IDnumber" name="IDnumber" value="<?php
|
||||
if(isset($IDnumber) && $IDnumber) {
|
||||
// 저장된 주민번호에 하이픈 추가하여 표시
|
||||
if(strlen($IDnumber) == 13) {
|
||||
echo substr($IDnumber, 0, 6) . '-' . substr($IDnumber, 6);
|
||||
} else {
|
||||
echo $IDnumber;
|
||||
}
|
||||
}
|
||||
?>" class="form-control text-start" maxlength="14" placeholder="000000-0000000">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> 자택주소 </td>
|
||||
<td colspan="3">
|
||||
<input type="text" id="address" name="address" value="<?=$address?>" class="form-control text-start">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-success fw-bold">법인카드 회사</td>
|
||||
<td><input type="text" id="card_company" name="card_company" value="<?= $card_company ?>" class="form-control text-start"></td>
|
||||
<td class="text-success fw-bold">법인카드 번호</td>
|
||||
<td><input type="text" id="card_number" name="card_number" value="<?= $card_number ?>" class="form-control text-start"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" class="text-white bg-primary fw-bold" style="padding: 3px!important; "> 급여 계좌정보 </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>은행명</td>
|
||||
<td>
|
||||
<select id="pay_bank" name="pay_bank" class="form-select text-start" style="font-size: 0.8rem; height: 32px;">
|
||||
<option value="">은행 선택</option>
|
||||
<?php
|
||||
$banks = [
|
||||
"국민은행", "신한은행", "우리은행", "하나은행", "농협은행",
|
||||
"기업은행", "SC제일은행", "씨티은행", "카카오뱅크", "케이뱅크",
|
||||
"토스뱅크", "수협은행", "대구은행", "부산은행", "경남은행",
|
||||
"광주은행", "전북은행", "제주은행", "우체국", "산업은행","지역농축협"
|
||||
];
|
||||
foreach ($banks as $bank) {
|
||||
$selected = ($pay_bank == $bank) ? 'selected' : '';
|
||||
echo "<option value=\"{$bank}\" {$selected}>{$bank}</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
<td> 계좌번호 </td>
|
||||
<td>
|
||||
<input type="text" id="pay_account" name="pay_account" value="<?=$pay_account?>" class="form-control text-start">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> 예금주 </td>
|
||||
<td>
|
||||
<input type="text" id="pay_holder" name="pay_holder" value="<?=$pay_holder?>" class="form-control text-start">
|
||||
</td>
|
||||
<td colspan="2">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="d-flex justify-content-center mt-2 mb-2">
|
||||
<?php if (intval($level) == 1 ) {
|
||||
print '<button id="saveBtn" class="btn btn-dark btn-sm me-2" type="button"> <i class="bi bi-floppy-fill"></i> 저장 </button>';
|
||||
print '<button id="delBtn" class="btn btn-danger btn-sm me-5" type="button"> <i class="bi bi-trash"></i> 삭제 </button>';
|
||||
print '<button class="btn btn-outline-secondary btn-sm me-2" type="button" onclick="self.close();"> <i class="bi bi-x-lg"></i> 닫기 </button>';
|
||||
} ?>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 페이지로딩 -->
|
||||
<script>
|
||||
// 페이지 로딩
|
||||
$(document).ready(function() {
|
||||
var loader = document.getElementById('loadingOverlay');
|
||||
loader.style.display = 'none';
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
ajaxRequest = null;
|
||||
|
||||
$(document).ready(function() {
|
||||
var state = $('#state').val();
|
||||
|
||||
$("#closeModalBtn").click(function() {
|
||||
$('#myModal').modal('hide');
|
||||
});
|
||||
|
||||
$("#closeBtn").click(function() {
|
||||
// 저장하고 창닫기
|
||||
});
|
||||
|
||||
$("#saveBtn").click(function() {
|
||||
// 주민번호 하이픈 제거
|
||||
var idNumber = $('#IDnumber').val();
|
||||
if (idNumber) {
|
||||
var cleanIdNumber = idNumber.replace(/-/g, '');
|
||||
$('#IDnumber').val(cleanIdNumber);
|
||||
}
|
||||
|
||||
// DATA 저장버튼 누름
|
||||
var form = $('#board_form')[0];
|
||||
var datasource = new FormData(form);
|
||||
|
||||
if ($("#name").val() == '' || $("#id").val() == '' || $("#pass").val() == '' ) {
|
||||
Swal.fire({
|
||||
title: '필수입력 확인',
|
||||
text: "필수입력 사항을 확인바랍니다.",
|
||||
icon: 'error',
|
||||
confirmButtonText: '확인'
|
||||
});
|
||||
} else {
|
||||
if (ajaxRequest !== null) {
|
||||
ajaxRequest.abort();
|
||||
}
|
||||
ajaxRequest = $.ajax({
|
||||
enctype: 'multipart/form-data',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
timeout: 600000,
|
||||
url: "insert.php",
|
||||
type: "post",
|
||||
data: datasource,
|
||||
dataType: "json",
|
||||
success: function(data) {
|
||||
console.log(data);
|
||||
Toastify({
|
||||
text: "파일 저장완료",
|
||||
duration: 2000,
|
||||
close: true,
|
||||
gravity: "top",
|
||||
position: "center",
|
||||
style: {
|
||||
background: "linear-gradient(to right, #00b09b, #96c93d)"
|
||||
},
|
||||
}).showToast();
|
||||
setTimeout(function() {
|
||||
if (window.opener && !window.opener.closed) {
|
||||
window.opener.location.reload(); // 부모 창 새로고침
|
||||
window.close();
|
||||
}
|
||||
}, 1000);
|
||||
},
|
||||
error: function(jqxhr, status, error) {
|
||||
console.log(jqxhr, status, error);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$("#delBtn").click(function() {
|
||||
var state = $("#state").val();
|
||||
var level = '<?php echo $level; ?>';
|
||||
var admin = '<?php echo $admin; ?>';
|
||||
|
||||
if (level !== '1') {
|
||||
Swal.fire({
|
||||
title: '삭제불가',
|
||||
text: "관리자만 삭제가능합니다.",
|
||||
icon: 'error',
|
||||
confirmButtonText: '확인'
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
title: '자료 삭제',
|
||||
text: "삭제는 신중! 정말 삭제하시겠습니까?",
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: '삭제',
|
||||
cancelButtonText: '취소'
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$("#mode").val('delete');
|
||||
|
||||
$.ajax({
|
||||
url: "insert.php",
|
||||
type: "post",
|
||||
data: $("#board_form").serialize(),
|
||||
dataType: "json",
|
||||
success: function(data) {
|
||||
console.log(data);
|
||||
Toastify({
|
||||
text: "파일 삭제완료",
|
||||
duration: 2000,
|
||||
close: true,
|
||||
gravity: "top",
|
||||
position: "center",
|
||||
style: {
|
||||
background: "linear-gradient(to right, #00b09b, #96c93d)"
|
||||
},
|
||||
}).showToast();
|
||||
setTimeout(function() {
|
||||
if (window.opener && !window.opener.closed) {
|
||||
window.opener.restorePageNumber(); // 부모 창에서 페이지 번호 복원
|
||||
window.opener.location.reload(); // 부모 창 새로고침
|
||||
window.close();
|
||||
}
|
||||
}, 1000);
|
||||
},
|
||||
error: function(jqxhr, status, error) {
|
||||
console.log(jqxhr, status, error);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 두날짜 사이 일자 구하기
|
||||
const getDateDiff = (d1, d2) => {
|
||||
const date1 = new Date(d1);
|
||||
const date2 = new Date(d2);
|
||||
|
||||
const diffDate = date1.getTime() - date2.getTime();
|
||||
|
||||
return Math.abs(diffDate / (1000 * 60 * 60 * 24)); // 밀리세컨 * 초 * 분 * 시 = 일
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
$("input").attr("autocomplete", "off");
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
// 부서 데이터 정의 (JSON 파일의 데이터를 JavaScript로 변환)
|
||||
var partData = <?php echo json_encode($partData); ?>;
|
||||
var currentPart = '<?php echo isset($part) ? $part : ""; ?>';
|
||||
|
||||
// 회사 선택에 따른 부서 업데이트 함수
|
||||
function updatePartOptions(selectedCorp) {
|
||||
var partSelect = $('#part');
|
||||
partSelect.empty();
|
||||
partSelect.append('<option value="">(부서)</option>');
|
||||
|
||||
if (selectedCorp) {
|
||||
partData.forEach(function(dept) {
|
||||
if (dept.corp === selectedCorp) {
|
||||
var selected = (dept.part === currentPart) ? 'selected' : '';
|
||||
partSelect.append('<option value="' + dept.part + '" ' + selected + '>' + dept.part + '</option>');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 회사 선택 변경 이벤트
|
||||
$('#division').on('change', function() {
|
||||
var selectedCorp = $(this).val();
|
||||
updatePartOptions(selectedCorp);
|
||||
});
|
||||
|
||||
// 페이지 로드 시 현재 선택된 회사에 따른 부서 설정
|
||||
var currentDivision = $('#division').val();
|
||||
if (currentDivision) {
|
||||
updatePartOptions(currentDivision);
|
||||
}
|
||||
|
||||
// 1차 결재 선택 이벤트
|
||||
$('#firstApprovalSelect').on('change', function(){
|
||||
var selectedId = $(this).val();
|
||||
var selectedName = $(this).find('option:selected').text();
|
||||
// 선택한 회원의 id를 히든 필드에 저장
|
||||
$('#first_approval_id').val(selectedId);
|
||||
// 화면에는 id 대신 "****"을 표시하여 개인정보 보호
|
||||
$('#firstApprovalDisplay').val('****');
|
||||
// 1차 결재권자 이름 필드에 선택된 이름을 반영
|
||||
$('#first_approval_name').val(selectedName);
|
||||
});
|
||||
|
||||
// 주민번호 자동 포맷팅
|
||||
$('#IDnumber').on('input', function() {
|
||||
var value = $(this).val().replace(/[^0-9]/g, ''); // 숫자만 추출
|
||||
var formattedValue = '';
|
||||
|
||||
if (value.length <= 6) {
|
||||
formattedValue = value;
|
||||
} else if (value.length <= 13) {
|
||||
formattedValue = value.substring(0, 6) + '-' + value.substring(6);
|
||||
} else {
|
||||
formattedValue = value.substring(0, 6) + '-' + value.substring(6, 13);
|
||||
}
|
||||
|
||||
$(this).val(formattedValue);
|
||||
});
|
||||
|
||||
// 주민번호 하이픈 제거하여 서버에 전송
|
||||
$('#board_form').on('submit', function() {
|
||||
var idNumber = $('#IDnumber').val();
|
||||
if (idNumber) {
|
||||
// 하이픈 제거하여 숫자만 저장
|
||||
var cleanIdNumber = idNumber.replace(/-/g, '');
|
||||
$('#IDnumber').val(cleanIdNumber);
|
||||
}
|
||||
});
|
||||
|
||||
// 주민번호 유효성 검사 (선택사항)
|
||||
$('#IDnumber').on('blur', function() {
|
||||
var value = $(this).val();
|
||||
if (value && value.length === 14) {
|
||||
// 주민번호 형식 검사 (간단한 검증)
|
||||
var pattern = /^\d{6}-\d{7}$/;
|
||||
if (!pattern.test(value)) {
|
||||
Swal.fire({
|
||||
title: '입력 오류',
|
||||
text: '주민번호 형식이 올바르지 않습니다. (000000-0000000)',
|
||||
icon: 'warning',
|
||||
confirmButtonText: '확인'
|
||||
});
|
||||
$(this).focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user