808 lines
35 KiB
Plaintext
808 lines
35 KiB
Plaintext
<%
|
|
/**
|
|
* <pre>
|
|
* @Class Name : putMyInfo.jsp
|
|
*
|
|
* @Description : 내 정보 수정
|
|
*
|
|
*
|
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
|
*
|
|
* </pre>
|
|
*
|
|
* @ ------------ -------- ---------------------------
|
|
* @ 수정일 수정자 수정내용
|
|
* @ ------------ -------- ---------------------------
|
|
* @ 2021. 7. 12. JSYOO 최초 생성
|
|
*
|
|
*
|
|
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
|
* @since 2021. 7. 12.
|
|
* @version 1.0
|
|
*
|
|
*/
|
|
%>
|
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
|
<script>
|
|
$(document).ready(function() {
|
|
birthSelectbox();
|
|
<%
|
|
//인증완료
|
|
%>
|
|
$("[id^='mobileSuc']").css("display","inline-block");
|
|
$("[id^='emailSuc']").css("display","inline-block");
|
|
<%
|
|
// sns연동이 하나일때 연결해제버튼 제거
|
|
%>
|
|
if($("inputinput[name='unlinkBtn']").length==1)
|
|
{
|
|
$("input[name='unlinkBtn']").remove();
|
|
};
|
|
|
|
<%
|
|
//새비밀번호,새비밀번호확인이 일치하는지 확인
|
|
%>
|
|
$("#newPassword,#newPasswordConfirm").on("propertychange change keyup paste", function() {
|
|
$("#passwdMatch").css("display","");
|
|
if($("#newPassword").val() == $("#newPasswordConfirm").val() && $("#newPassword").length > 0)
|
|
{
|
|
$("#passwdMatch").text("일치합니다.");
|
|
}else{
|
|
$("#passwdMatch").text("일치하지 않습니다.");
|
|
}
|
|
});
|
|
<%
|
|
//핸드폰 번호가 변하는것 실시간 감지
|
|
%>
|
|
$("#mobileNo_1,#mobileNo_2,#mobileNo_3").on("propertychange change keyup paste input", function() {
|
|
if($("#userMobileNo").val() == $("#mobileNo_1").val()+ $("#mobileNo_2").val()+ $("#mobileNo_3").val())
|
|
{
|
|
$("#mobileCertYn").val("Y");
|
|
$("#mobileCertSendBtn").css("display","none");
|
|
$("#mobileReSend").css("display","none");
|
|
$("[id^='mobileSuc']").css("display","inline-block");
|
|
$("[id^='mobileVrfctNo']").css("display","none");
|
|
}else{
|
|
$("#mobileCertYn").val("N");
|
|
$("#mobileCertSendBtn").css("display","");
|
|
$("#mobileReSend").css("display","none");
|
|
$("[id^='mobileSuc']").css("display","none");
|
|
$("#mobileCertSendBtn").removeClass('btn-gray');
|
|
$("#mobileCertSendBtn").addClass('btn-color');
|
|
$("#mobileCertSendBtn").attr("disabled", false);
|
|
}
|
|
});
|
|
<%
|
|
//아이디가 변하는것 실시간 감지
|
|
%>
|
|
$("#email").on("propertychange change keyup paste input", function() {
|
|
if($("#userEmail").val() == $("#email").val())
|
|
{
|
|
$("#emailCertYn").val("Y");
|
|
$("#emailCertSendBtn").css("display","none");
|
|
$("#emailReSend").css("display","none");
|
|
$("[id^='emailSuc']").css("display","inline-block");
|
|
$("[id^='emailVrfctNo']").css("display","none");
|
|
}else{
|
|
$("#emailCertYn").val("N");
|
|
$("#emailCertSendBtn").css("display","");
|
|
$("#emailReSend").css("display","none");
|
|
$("[id^='emailSuc']").css("display","none");
|
|
$("#emailCertSendBtn").removeClass('btn-gray');
|
|
$("#emailCertSendBtn").addClass('btn-color');
|
|
$("#emailCertSendBtn").attr("disabled", false);
|
|
}
|
|
});
|
|
|
|
$("input:checkbox[name='gender']:checkbox[value='${loginVO.gender}']").prop("checked",true);
|
|
|
|
|
|
var birthday='${loginVO.birthday}';
|
|
|
|
var birth_yy = birthday.substr(0,4);
|
|
var birth_mm = birthday.substr(4,2);
|
|
var birth_dd = birthday.substr(6,2);
|
|
$("#birth_yy").val(birth_yy).prop("selected", true);
|
|
$("#birth_mm").val(birth_mm).prop("selected", true);
|
|
$("#birth_dd").val(birth_dd).prop("selected", true);
|
|
|
|
var MobileNo='<c:out value="${loginVO.mobileNo}"/>';
|
|
|
|
if(!(MobileNo == ""))
|
|
{
|
|
var mobileNo_1 = "";
|
|
var mobileNo_2 = "";
|
|
var mobileNo_3 = "";
|
|
if(MobileNo.length == 11)
|
|
{
|
|
mobileNo_1 =MobileNo.substr(0,3);
|
|
mobileNo_2 =MobileNo.substr(3,4);
|
|
mobileNo_3 =MobileNo.substr(7,4);
|
|
}
|
|
if(MobileNo.length == 10)
|
|
{
|
|
mobileNo_1 =MobileNo.substr(0,3);
|
|
mobileNo_2 =MobileNo.substr(3,3);
|
|
mobileNo_3 =MobileNo.substr(6,4);
|
|
}
|
|
|
|
$("#mobileNo_1").val(mobileNo_1);
|
|
$("#mobileNo_2").val(mobileNo_2);
|
|
$("#mobileNo_3").val(mobileNo_3);
|
|
}
|
|
})
|
|
|
|
|
|
function birthSelectbox(){
|
|
var now = new Date();
|
|
var year = now.getFullYear();
|
|
var mon = now.getMonth() + 1 > 9 ? "" + (now.getMonth() + 1) : "0" + (now.getMonth() + 1);
|
|
var day = now.getDate() > 9 ? "" + now.getDate() : "0" + now.getDate();
|
|
// 년도
|
|
for (var i = 1900; i <= year; i++) {
|
|
$("#birth_yy").append('<option value="' + i + '">' + i + "</option>");
|
|
}
|
|
|
|
// 월별
|
|
for (var i = 1; i <= 12; i++) {
|
|
var mm = i > 9 ? i : "0" + i;
|
|
$("#birth_mm").append('<option value="' + mm + '">' + mm + "</option>");
|
|
}
|
|
|
|
// 일별
|
|
for (var i = 1; i <= 31; i++) {
|
|
var dd = i > 9 ? i : "0" + i;
|
|
$("#birth_dd").append('<option value="' + dd + '">' + dd + "</option>");
|
|
}
|
|
|
|
}
|
|
function update(){
|
|
var flag = false;
|
|
|
|
if($("#name").val() == "")
|
|
{
|
|
$("#name").focus();
|
|
alert("이름을 입력해주세요.");
|
|
return false;
|
|
}
|
|
$("input[name='gender']").each( function () {
|
|
if (this.checked) {
|
|
flag = !flag;
|
|
return;
|
|
}
|
|
});
|
|
if (!flag) {
|
|
$("#m").focus();
|
|
alert("성별을 체크해주세요.");
|
|
return false;
|
|
}
|
|
if(!checkBirthday())
|
|
{
|
|
alert("생년월일이 형식에 맞지 않습니다. 확인해주세요.");
|
|
return false;
|
|
}
|
|
if($("#mobileNo_1").val() == "" || $("#mobileNo_2").val() == "" || $("#mobileNo_3").val() == "")
|
|
{
|
|
$("#mobileNo_1").focus();
|
|
alert("휴대폰 번호를 입력해주세요.");
|
|
return false;
|
|
}
|
|
if($("#mobileCertYn").val()!="Y")
|
|
{
|
|
alert("휴대폰 인증이 필요합니다.");
|
|
return false;
|
|
}
|
|
if($("#email").val() == "")
|
|
{
|
|
$("#email").focus();
|
|
alert("이메일을 입력해주세요.");
|
|
return false;
|
|
}
|
|
if($("#emailCertYn").val()!="Y")
|
|
{
|
|
alert("이메일 인증이 필요합니다.");
|
|
return false;
|
|
}
|
|
if($("#zipCode").val()=="" || $("#address").val()=="")
|
|
{
|
|
$("#zipCode").focus();
|
|
alert("주소를 입력해주세요.");
|
|
return false;
|
|
}
|
|
if($("#service-chk1").is(":checked") == false)
|
|
{
|
|
$("#service-chk1").focus();
|
|
alert("대출/열람 정보 수신에 동의해주세요.");
|
|
return false;
|
|
}
|
|
if(confirm("정보를 수정하시겠습니까?")){
|
|
$("#birthday").val($("#birth_yy").val()+$("#birth_mm").val()+$("#birth_dd").val());
|
|
$("#mobileNo").val($("#mobileNo_1").val()+$("#mobileNo_2").val()+$("#mobileNo_3").val());
|
|
|
|
if($("input[name='infoRecvSmsYnChk']").is(":checked"))$("#infoRecvSmsYn").val("Y");
|
|
else $("#infoRecvSmsYn").val("N");
|
|
if($("input[name='infoRecvEmailYnChk']").is(":checked"))$("#infoRecvEmailYn").val("Y");
|
|
else $("#infoRecvEmailYn").val("N");
|
|
if($("input[name='mktRecvSmsYnChk']").is(":checked"))$("#mktRecvSmsYn").val("Y");
|
|
else $("#mktRecvSmsYn").val("N");
|
|
if($("input[name='mktRecvEmailYnChk']").is(":checked"))$("#mktRecvEmailYn").val("Y");
|
|
else $("#mktRecvEmailYn").val("N");
|
|
var form = document.updateForm;
|
|
form.action="${pageContext.request.contextPath}/userInfo/updateMyInfo.do";
|
|
form.submit();
|
|
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function pwdChangePop(){
|
|
if($(".pop-change").is(":visible"))
|
|
{
|
|
$(".pop-change").css("display","none");
|
|
}else{
|
|
$(".pop-change").css("display","");
|
|
}
|
|
|
|
$("#password").val("");
|
|
$("#newPassword").val("");
|
|
$("#newPasswordConfirm").val("");
|
|
}
|
|
function changePassword(){
|
|
<%//패스워드 정규식 9자이상 소문자, 숫자 ,특수문자%>
|
|
var regExp = /^(?=.*[a-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{9,}$/i;
|
|
|
|
var p = document.getElementById('newPassword');
|
|
var p_cf = document.getElementById('newPasswordConfirm');
|
|
|
|
if(!regExp.test(p.value)){
|
|
p.focus();
|
|
alert("9자리 이상, 숫자/문자/특수문자를 혼합하여 입력해주세요.");
|
|
return false;
|
|
}
|
|
if(p.value != p_cf.value)
|
|
{
|
|
alert("새 비밀번호가 일치하지 않습니다. 확인해 주세요.");
|
|
p_cf.focus();
|
|
return false;
|
|
}
|
|
$.ajax({
|
|
url : "${pageContext.request.contextPath}/member/changePassword.ajax",
|
|
type : "POST",
|
|
async: false,
|
|
data : {"password" : $("#password").val()
|
|
,"newPassword" : $("#newPassword").val()
|
|
},
|
|
success : function(result){
|
|
if(result == "success");
|
|
{
|
|
alert("비밀번호 변경이 처리되었습니다.");
|
|
pwdChangePop();
|
|
}
|
|
|
|
if(result == "fail")
|
|
{
|
|
alert("기존 비밀번호가 올바르지 않습니다.");
|
|
}
|
|
|
|
},error : function(){
|
|
}
|
|
})
|
|
return false;
|
|
}
|
|
|
|
<%
|
|
//이메일 인증
|
|
%>
|
|
var mailDoubleSubmitFlag = false;
|
|
function emailCert(){
|
|
if(mailDoubleSubmitFlag)
|
|
{
|
|
alert("메일 전송중입니다. 잠시만 기다려주세요.");
|
|
return false;
|
|
}
|
|
|
|
|
|
var regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
|
|
|
|
if(!regExp.test($("#email").val()) || $("#email").val()==""){
|
|
|
|
alert("형식에 맞지 않는 이메일입니다.");
|
|
return false;
|
|
}
|
|
|
|
mailDoubleSubmitFlag = true;
|
|
|
|
$.ajax({
|
|
url : "${pageContext.request.contextPath}/member/emailCertNum.ajax",
|
|
type : "POST",
|
|
async: true,
|
|
data : {"email" : $("#email").val(),
|
|
"pageName" : "myInfo"},
|
|
success : function(result){
|
|
alert(result.msg);
|
|
|
|
if(result.emailCertYn=="Y")
|
|
{
|
|
$("#emailVrfctNo").val("");
|
|
$("#emailCertYn").val("N");
|
|
$("#emailCertSendBtn").removeClass('btn-color');
|
|
$("#emailCertSendBtn").addClass('btn-gray');
|
|
$("#emailCertSendBtn").attr("disabled", true);
|
|
$("#emailReSend").css("display","");
|
|
$("[id^='emailSuc']").css("display","none");
|
|
$("[id^='emailVrfctNo']").css("display","inline-block");
|
|
mailDoubleSubmitFlag = false;
|
|
}
|
|
if(result.emailCertYn=="N")
|
|
{
|
|
$("#emailCertYn").val("N");
|
|
$("[id^='emailSuc']").css("display","none");
|
|
mailDoubleSubmitFlag = false;
|
|
}
|
|
},error : function(){
|
|
mailDoubleSubmitFlag = false;
|
|
}
|
|
})
|
|
}
|
|
|
|
<%
|
|
//이메일 인증번호 확인
|
|
%>
|
|
function certEmailCheck(){
|
|
<%
|
|
//ajax 사용자가 입력한 번호를 보내 RESTfull server에서 확인 success or fail 반환 (3분이내인지도)
|
|
%>
|
|
$.ajax({
|
|
url : "${pageContext.request.contextPath}/member/emailCertNumChk.ajax",
|
|
type : "POST",
|
|
data : {"emailVrfctNo" : $("#emailVrfctNo").val(),
|
|
"email" : $("#email").val(),
|
|
"pageName" : "myInfo"},
|
|
async: false,
|
|
success : function(result){
|
|
if(result=="true")
|
|
{
|
|
alert("인증되었습니다.");
|
|
$("#emailCertYn").val("Y");
|
|
$("#emailCertSendBtn").css("display","none");
|
|
$("#emailReSend").css("display","none");
|
|
$("[id^='emailSuc']").css("display","inline-block");
|
|
$("[id^='emailVrfctNo']").css("display","none");
|
|
}else
|
|
{
|
|
alert("인증번호가 일치하지않습니다.");
|
|
}
|
|
}
|
|
,error : function(){
|
|
}
|
|
})
|
|
}
|
|
|
|
var mobileDoubleSubmitFlag = false;
|
|
|
|
<%
|
|
//핸드폰 인증번호 받기
|
|
%>
|
|
function mobileCert(){
|
|
if(mobileDoubleSubmitFlag)
|
|
{
|
|
alert("인증번호 전송중입니다. 잠시만 기다려주세요.");
|
|
return false;
|
|
}
|
|
|
|
mobileDoubleSubmitFlag = true;
|
|
|
|
var mobileNo = $("#mobileNo_1").val()+ $("#mobileNo_2").val()+ $("#mobileNo_3").val();
|
|
mobileNo = mobileNo.replace(/-/gi,"");
|
|
$("#mobileNo").val(mobileNo);
|
|
|
|
var regExp = /^\d{3}\d{3,4}\d{4}$/;
|
|
|
|
if(!regExp.test($("#mobileNo").val()) || $("#mobileNo").val()==""){
|
|
|
|
alert("형식에 맞지 않는 번호입니다.");
|
|
return false;
|
|
}
|
|
|
|
$.ajax({
|
|
url : "${pageContext.request.contextPath}/member/mobileCertNum.ajax",
|
|
type : "POST",
|
|
async: false,
|
|
data : {"mobileNo" : $("#mobileNo").val(),
|
|
"pageName" : "myInfo"},
|
|
success : function(result){
|
|
alert("인증번호가 발송됐습니다.");
|
|
$("#mobileVrfctNo").val("");
|
|
$("#mobileCertYn").val("N");
|
|
$("#mobileCertSendBtn").removeClass('btn-color');
|
|
$("#mobileCertSendBtn").addClass('btn-gray');
|
|
$("#mobileCertSendBtn").attr("disabled", true);
|
|
$("#mobileReSend").css("display","");
|
|
$("[id^='mobileSuc']").css("display","none");
|
|
$("[id^='mobileVrfctNo']").css("display","inline-block");
|
|
mobileDoubleSubmitFlag = false;
|
|
},error : function(){
|
|
mobileDoubleSubmitFlag = false;
|
|
}
|
|
})
|
|
}
|
|
|
|
<%
|
|
//핸드폰 인증번호 확인
|
|
%>
|
|
function certMobileCheck(){
|
|
<%
|
|
//ajax 사용자가 입력한 번호를 보내 RESTfull server에서 확인 success or fail 반환 (3분이내인지도)
|
|
%>
|
|
$.ajax({
|
|
url : "${pageContext.request.contextPath}/member/mobileCertNumChk.ajax",
|
|
type : "POST",
|
|
data : {"mobileVrfctNo" : $("#mobileVrfctNo").val(),
|
|
"mobileNo" : $("#mobileNo").val(),
|
|
"pageName" : "myInfo"},
|
|
async: false,
|
|
success : function(result){
|
|
if(result=="true")
|
|
{
|
|
alert("인증되었습니다.");
|
|
$("#mobileCertYn").val("Y");
|
|
$("#mobileCertSendBtn").css("display","none");
|
|
$("#mobileReSend").css("display","none");
|
|
$("[id^='mobileSuc']").css("display","inline-block");
|
|
$("[id^='mobileVrfctNo']").css("display","none");
|
|
}else{
|
|
alert("인증번호가 일치하지않습니다.");
|
|
}
|
|
},error : function(){
|
|
}
|
|
})
|
|
}
|
|
|
|
function fn_cancel(){
|
|
location.href="/userInfo/getMyHome.do";
|
|
}
|
|
|
|
document.addEventListener('keydown', function(event) {
|
|
if (event.keyCode === 13) {
|
|
event.preventDefault();
|
|
}
|
|
}, true);
|
|
|
|
function checkBirthday() {
|
|
var birthday;
|
|
var yy = $("#birth_yy option:selected").val();
|
|
var mm = $("#birth_mm option:selected").val();
|
|
var dd = $("#birth_dd option:selected").val();
|
|
var lang = "ko_KR";
|
|
|
|
var oyy = $("#birth_yy");
|
|
var omm = $("#birth_mm");
|
|
var odd = $("#birth_dd");
|
|
|
|
if (mm.length == 1) {
|
|
mm = "0" + mm;
|
|
}
|
|
if (dd.length == 1) {
|
|
dd = "0" + dd;
|
|
}
|
|
|
|
birthday = yy + mm + dd;
|
|
if (!isValidDate(birthday)) {
|
|
return false;
|
|
}
|
|
|
|
var age = calcAge(birthday);
|
|
if (age < 0) {
|
|
return false;
|
|
} else if (yy < 1900) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function isValidDate(param) {
|
|
try {
|
|
param = param.replace(/-/g, '');
|
|
|
|
// 자리수가 맞지않을때
|
|
if (isNaN(param) || param.length != 8) {
|
|
return false;
|
|
}
|
|
|
|
var year = Number(param.substring(0, 4));
|
|
var month = Number(param.substring(4, 6));
|
|
var day = Number(param.substring(6, 8));
|
|
|
|
if (month < 1 || month > 12) {
|
|
return false;
|
|
}
|
|
|
|
var maxDaysInMonth = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
|
|
var maxDay = maxDaysInMonth[month - 1];
|
|
|
|
// 윤년 체크
|
|
if (month == 2 && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)) {
|
|
maxDay = 29;
|
|
}
|
|
|
|
if (day <= 0 || day > maxDay) {
|
|
return false;
|
|
}
|
|
return true;
|
|
|
|
} catch (err) {
|
|
return false;
|
|
}
|
|
;
|
|
}
|
|
|
|
function calcAge(birth) {
|
|
var date = new Date();
|
|
var year = date.getFullYear();
|
|
var month = (date.getMonth() + 1);
|
|
var day = date.getDate();
|
|
if (month < 10)
|
|
month = '0' + month;
|
|
if (day < 10)
|
|
day = '0' + day;
|
|
var monthDay = month + '' + day;
|
|
|
|
birth = birth.replace('-', '').replace('-', '');
|
|
var birthdayy = birth.substr(0, 4);
|
|
var birthdaymd = birth.substr(4, 4);
|
|
|
|
var age = monthDay < birthdaymd ? year - birthdayy - 1 : year - birthdayy;
|
|
return age;
|
|
}
|
|
|
|
<%
|
|
/* SNS 연동해지 */
|
|
%>
|
|
function snsUnlink(snsId){
|
|
if(confirm("SNS연동을 해지하시겠습니까?"))
|
|
{
|
|
$.ajax({
|
|
url : "${pageContext.request.contextPath}/userInfo/deleteSnsLink.ajax",
|
|
type : "POST",
|
|
async: false,
|
|
data : {mbSnsId:snsId},
|
|
success : function(result){
|
|
alert("연동이 해지되었습니다.");
|
|
$("#sns_"+snsId).remove();
|
|
if($("input[name='unlinkBtn']").length==1)
|
|
{
|
|
$("input[name='unlinkBtn']").remove();
|
|
};
|
|
},error : function(){
|
|
}
|
|
})
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
<!-- 내정보 수정 섹션 -->
|
|
<div class="location join modify">
|
|
<h2 class="blind">내정보 수정 섹션영역</h2>
|
|
<div class="inner">
|
|
<div class="row-top">
|
|
<div class="location-box">
|
|
<ul class="loc">
|
|
<li>HOME</li>
|
|
<li>마이페이지</li>
|
|
<li>회원정보관리</li>
|
|
<li class="on">내 정보</li>
|
|
</ul>
|
|
<ul class="tit">
|
|
<li><span>내정보</span></li>
|
|
</ul>
|
|
</div>
|
|
<div class="arr"><img src="/images/icon/icon-join-arr2.png" alt="화살표 아이콘"></div>
|
|
</div>
|
|
<div class="contents row-bottom">
|
|
<div class="join-box">
|
|
<div class="info">
|
|
<form id="updateForm" name="updateForm" class="mt-5 form-container" method="post" action="${pageContext.request.contextPath}/userInfo/updateMyInfo.do">
|
|
<input type="hidden" id="birthday" name="birthday" >
|
|
<input type="hidden" id="mobileNo" name="mobileNo" >
|
|
<input type="hidden" id="mobileCertYn" name="mobileCertYn" value="Y">
|
|
<input type="hidden" id="emailCertYn" name="emailCertYn" value="Y">
|
|
<input type="hidden" id="loginUserId" name="loginUserId" >
|
|
<input type="hidden" id="infoRecvSmsYn" name="infoRecvSmsYn" >
|
|
<input type="hidden" id="infoRecvEmailYn" name="infoRecvEmailYn">
|
|
<input type="hidden" id="mktRecvSmsYn" name="mktRecvSmsYn">
|
|
<input type="hidden" id="mktRecvEmailYn" name="mktRecvEmailYn">
|
|
<input type="hidden" id="mbInfoId" name="mbInfoId" value="<c:out value="${loginVO.mbInfoId}"/>" >
|
|
<input type="hidden" id="userEmail" name="userEmail" value="<c:out value="${loginVO.email}"/>" >
|
|
<input type="hidden" id="userMobileNo" name="userMobileNo" value="<c:out value="${loginVO.mobileNo}"/>" >
|
|
<h2 style="margin-top:0;">회원정보</h2>
|
|
|
|
<div class="form-group Username">
|
|
<label for="name">이름</label>
|
|
<div class="con">
|
|
<input class="form-control" type="text" id="name" name="name" minlength="2" maxlength="20" value=<c:out value="${loginVO.name}"/> placeholder="이름을 입력하세요"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group Usersex">
|
|
<label>성별</label>
|
|
<div class="con">
|
|
<div class="chk"><input type="checkbox" id="m" class="sex" name="gender" value="M" ><label for="m">남자</label></div>
|
|
<div class="chk"><input type="checkbox" id="w" class="sex" name="gender" value="F"><label for="w">여자</label></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group Userbirth">
|
|
<label>생년월일</label>
|
|
<div class="con">
|
|
<label for="birth_yy" style="display:none;">년</label><select name="birth_yy" id="birth_yy"></select>년
|
|
<label for="birth_mm" style="display:none;">월</label><select name="birth_mm" id="birth_mm"></select>월
|
|
<label for="birth_dd" style="display:none;">일</label><select name="birth_dd" id="birth_dd"></select>일
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group Userpassword">
|
|
<label>비밀번호</label>
|
|
<div class="con">
|
|
<p><button type="button" class="btn btn-color pop-change-btn" onclick="pwdChangePop();">비밀번호 변경</button></p>
|
|
<p>- 입력하신 비밀번호는 ‘계정 연결’, ‘내 정보 확인’, ‘회원탈퇴’ 시, 회원님의 정보보호 및 본인확인을 위해 사용됩니다.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group Usermobile">
|
|
<label>휴대폰 번호</label>
|
|
<div class="con mobile">
|
|
<div class="row">
|
|
<label for="mobileNo_1" style="display:none;">ex)010</label><input class="form-control mobile1" type="text" id="mobileNo_1" value="010" maxlength="3" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/> -
|
|
<label for="mobileNo_2" style="display:none;">1234</label><input class="form-control mobile2" type="text" id="mobileNo_2" value="" maxlength="4" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/> -
|
|
<label for="mobileNo_3" style="display:none;">5678</label><input class="form-control mobile3" type="text" id="mobileNo_3" value="" maxlength="4" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/>
|
|
<button type="button" class="btn-color" id="mobileCertSendBtn" name="mobileCertSendBtn" style="display:none;" onclick="mobileCert();">인증하기</button>
|
|
<button type="button" class="btn-black" id="mobileReSend" style="display:none;" onclick="mobileCert();">재전송</button>
|
|
</div>
|
|
<div class="row" id="mobileCertForm">
|
|
<label for="mobileVrfctNo" style="display:none;">인증번호 입력</label><input class="form-control cer" type="text" style="display:none;" id='mobileVrfctNo' name='mobileVrfctNo' placeholder=" SMS로 발송된 인증번호를 입력하세요"/>
|
|
<button type="button" class="btn-color" style="display:none;" id='mobileVrfctNoBtn' onclick='certMobileCheck();'>확인</button>
|
|
<span id="mobileSuc" class="suc">인증이 완료되었습니다.</span>
|
|
<span id="mobileSuc-chk" class="chk-suc"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group Useremail">
|
|
<label for="email">이메일</label>
|
|
<div class="con email">
|
|
<div class="row">
|
|
<input class="form-control email1" type="email" id="email" name="email" placeholder="example@mail.com" maxlength="30" value="<c:out value="${loginVO.email}"/>" />
|
|
<button type="button" class="btn-color" id="emailCertSendBtn" name="emailCertSendBtn" style="display:none;" onclick="emailCert();">인증하기</button>
|
|
<button type="button" class="btn-black" id="emailReSend" style="display:none;" onclick="emailCert();">재전송</button>
|
|
</div>
|
|
<div class="row" id="emailCertForm">
|
|
<label for="emailVrfctNo" style="display:none;">인증번호 입력</label><input class="form-control cer" type="text" id='emailVrfctNo' style="display:none;" name='emailVrfctNo' placeholder=" 이메일로 발송된 인증번호를 입력하세요"/>
|
|
<button type="button" class="btn-color" id='emailVrfctNoBtn' style="display:none;" onclick='certEmailCheck()'>확인</button>
|
|
<span id="emailSuc" class="suc">인증이 완료되었습니다.</span>
|
|
<span id="emailSuc-chk" class="chk-suc"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group Useraddr">
|
|
<label>주소</label>
|
|
<div class="con addr">
|
|
<div class="row">
|
|
<label for="zipCode" style="display:none;">우편번호</label><input class="form-control addr1" type="text" id="zipCode" name="zipCode" value="<c:out value="${loginVO.zipCode}"/>" readonly placeholder="우편번호" />
|
|
<button type="button" class="btn-color" onclick="sample6_execDaumPostcode();">우편번호</button>
|
|
</div>
|
|
<div class="row">
|
|
<label for="address" style="display:none;">주소</label><input class="form-control addr2" type="text" id="address" name="address" value="<c:out value="${loginVO.address}" escapeXml="false"/>" readonly placeholder="주소" />
|
|
<label for="addressDetail" style="display:none;">상세주소</label><input class="form-control addr3" type="text" id="addressDetail" name="addressDetail" value="<c:out value="${loginVO.addressDetail}"/>" placeholder="상세주소" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group Usersns">
|
|
<label>SNS 연동</label>
|
|
<div class="con sns">
|
|
<div class="row">
|
|
<c:forEach var="result" items="${snsList}" varStatus="status">
|
|
<div class="list" id="sns_<c:out value="sns_${result.mbSnsId}"/>">
|
|
<div class="sns-box ${fn:toLowerCase(result.snsType)}"><span><img src="/images/icon/icon-${fn:toLowerCase(result.snsType)}-login.png" alt="로고"></span><span><c:out value="${result.snsUserId}" /> <c:out value="${result.regDd}" /> 연결완료</span></div>
|
|
<c:if test="${fn:length(snsList) > 1}"><button type="button" class="btn-black" name="unlinkBtn" onclick="snsUnlink('<c:out value="${result.mbSnsId}" />');">연결해제</button></c:if>
|
|
</div>
|
|
</c:forEach>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>서비스 알림 수신 동의</h2>
|
|
|
|
<div class="form-group service">
|
|
<div class="left">
|
|
<div class="chk"><input type="checkbox" id="service-chk1" class="ser-chk1" <c:if test="${loginVO.infoRecvSmsYn eq 'Y' and loginVO.infoRecvEmailYn eq 'Y' }">checked </c:if>><label for="service-chk1">대출/열람 정보 수신동의 [필수]</label></div>
|
|
</div>
|
|
<p class="bg">※ 수신동의를 하시면 ‘자료반납’, ‘자료연체’, ‘예약자료 도착’, ‘열람신청 승인’, ‘열람신청 반려’ 등 자료이용 관련 알림을 받으실 수 있습니다.</p>
|
|
</div>
|
|
<div class="form-group service">
|
|
<div class="left">
|
|
<div class="chk"><input type="checkbox" id="service-chk2" class="ser-chk2" <c:if test="${loginVO.mktRecvSmsYn eq 'Y' and loginVO.mktRecvEmailYn eq 'Y' }">checked </c:if>><label for="service-chk2">지방문화원 소식/홍보 알림 수신동의 [선택]</label></div>
|
|
</div>
|
|
<div class="right">
|
|
<div class="chk"><input type="checkbox" id="service-chk2-1" class="ser-chk2-2" name="mktRecvSmsYnChk" <c:if test="${loginVO.mktRecvSmsYn eq 'Y' }">checked </c:if>><label for="service-chk2-1">문자(SMS)</label></div>
|
|
<div class="chk"><input type="checkbox" id="service-chk2-2" class="ser-chk2-2" name="mktRecvEmailYnChk" <c:if test="${loginVO.mktRecvEmailYn eq 'Y' }">checked </c:if>><label for="service-chk2-2">이메일</label></div>
|
|
</div>
|
|
<p class="bg">- 문자(SMS)/이메일 수신동의를 하시면 문화원 소식이나 주요 행사 등의 정보를 빠르게 만나실 수 있습니다.</p>
|
|
<p>- 회원가입완료, 임시비밀번호 발급관련 내용의 경우 수신 동의와 상관없이 이메일로 발송됩니다.</p>
|
|
</div>
|
|
|
|
<p class="release"><a href="${pageContext.request.contextPath}/member/deleteMembershipForm.do">소장자료관을 더 이상 사용하고 싶지 않으신가요? ></a></p>
|
|
|
|
<div class="btn-box">
|
|
<button type="button" class="btn btn-color" onclick="update();">수정하기</button>
|
|
<button type="button" class="btn btn-gray" id="cancel" onclick="fn_cancel();">취소</button>
|
|
</div>
|
|
</form>
|
|
<form id="passwordForm" name="passwordForm" method="post">
|
|
<!-- 비밀번호변경 팝업 -->
|
|
<div class="pop-change" style="display:none;">
|
|
<div class="row Title">
|
|
<p>내 정보</p>
|
|
<h3>비밀번호 변경</h3>
|
|
</div>
|
|
<div class="inner">
|
|
<div class="row change">
|
|
<p><label for="password" style="display:none;">기존비밀번호</label><input class="passwd" type="password" id="password" name="password" placeholder="기존 비밀번호" required/></p>
|
|
<p><label for="newPassword" style="display:none;">새 비밀번호</label><input class="passwd" type="password" id="newPassword" name="newPassword" placeholder="새 비밀번호" required/></p>
|
|
<p><label for="newPasswordConfirm" style="display:none;">새 비밀번호 확인</label><input class="passwd" type="password" id="newPasswordConfirm" name="newPasswordConfirm" placeholder="새 비밀번호 확인" required/></p>
|
|
<span id="passwdMatch" class="suc" style="display:none;">일치합니다.</span>
|
|
<p class="text">9자리 이상, 숫자/문자/특수문자를 혼합하여 입력</p>
|
|
</div>
|
|
<div class="row btn-box">
|
|
<button type="button" class="btn btn-color" onclick="changePassword();">변경하기</button>
|
|
<button type="button" class="btn btn-gray close" onclick="pwdChangePop();">취소</button>
|
|
</div>
|
|
<button type="button" class="change-close" onclick="pwdChangePop();"></button>
|
|
</div>
|
|
<div class="Bg"></div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script src="//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script>
|
|
<script>
|
|
function sample6_execDaumPostcode() {
|
|
new daum.Postcode({
|
|
oncomplete: function(data) {
|
|
// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
|
|
|
|
// 각 주소의 노출 규칙에 따라 주소를 조합한다.
|
|
// 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
|
|
var addr = ''; // 주소 변수
|
|
var extraAddr = ''; // 참고항목 변수
|
|
|
|
//사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다.
|
|
if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우
|
|
addr = data.roadAddress;
|
|
} else { // 사용자가 지번 주소를 선택했을 경우(J)
|
|
addr = data.jibunAddress;
|
|
}
|
|
|
|
// 우편번호와 주소 정보를 해당 필드에 넣는다.
|
|
document.getElementById('zipCode').value = data.zonecode;
|
|
document.getElementById("address").value = addr;
|
|
// 커서를 상세주소 필드로 이동한다.
|
|
document.getElementById("addressDetail").focus();
|
|
}
|
|
}).open();
|
|
}
|
|
</script>
|