로그인 회원가입 내정보 폼 수정

This commit is contained in:
JSYOO 2021-07-21 09:05:33 +09:00
parent a476cba476
commit 31c2484647
10 changed files with 177 additions and 209 deletions

View File

@ -30,7 +30,9 @@ public class InformServiceImpl implements InformService
* 테스트 데이터
* */
HashMap map = new HashMap();
map.put("terms", "이용약관입니다~");
map.put("terms", "여러분은 본 약관을 읽고 동의하신 후 회원 가입을 신청하실 수 있으며, 네이버는 이에 대한 승낙을 통해 회원 가입 절차를 완료하고 여러분께 네이버 서비스 이용 계정(이하 ‘계정’)을 부여합니다. 계정이란 회원이 네이버 서비스에 로그인한 이후 이용하는 각종 서비스 이용 이력을 회원 별로 관리하기 위해 설정한 회원 식별 단위를 말합니다.\n" +
"\n" +
"회원은 자신의 계정을 통해 좀더 다양한 네이버 서비스를 보다 편리하게 이용할 수 있습니다. 이와 관련한 상세한 내용은 계정 운영정책 및 고객센터 내 네이버 회원가입 방법 등에서 확인해 주세요.");
resVO.setInfo(map);
return resVO;
}

View File

@ -34,6 +34,6 @@ dataapi.temp.xml.path = C:/iams/workspace/nlib/data/dataxml
crypto.aria.defaultKey = TheFederationOfKoreaCultureCenter027042322
# \uba54\uc77c \uc815\ubcf4
mailing.sender.membership.template = C:/iams/workspace/nlib/src/main/webapp/mail_template.html
mailing.sender.membership.template = C:/iams/workspace/nlib/src/main/webapp/mail/mail_template.html
mailing.sender.membership.email = no-reply@nlib.org
mailing.sender.membership.name = Nlib

View File

@ -37,20 +37,10 @@
<meta name ="google-signin-client_id" content="879126511006-jro7bld7b2epl3n5mkksp0p24k2inbpu.apps.googleusercontent.com">
<script type="text/javascript" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" charset="utf-8"></script>
<script src = "//developers.kakao.com/sdk/js/kakao.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" type="text/css">
<script src="https://apis.google.com/js/api:client.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
function actionLogin() {
if (document.loginForm.username.value =="") {
alert("아이디를 입력하세요"); <%-- 아이디를 입력하세요 --%>
} else if (document.loginForm.password.value =="") {
alert("비밀번호를 입력하세요"); <%-- 비밀번호를 입력하세요 --%>
} else {
document.loginForm.action="<c:url value='/nlib/login/login.do'/>";
//document.loginForm.j_username.value = document.loginForm.userSe.value + document.loginForm.username.value;
//document.loginForm.action="<c:url value='/j_spring_security_check'/>";
document.loginForm.submit();
}
}
window.snsLogin = function(email){
$("#username").val(email);
$("#password").val("password");
@ -58,28 +48,71 @@
f.action="/nlib/login/login.do";
f.submit();
}
function signUp(){
location.href="/nlib/member/selectMemberJoiningInfo.do";
}
function findInfo(){
location.href="/nlib/member/searchIdForm.do";
}
</script>
<style type="text/css">
#GgCustomLogin {
display: inline-block;
background: white;
color: #444;
width: 222px;
height: 49px;
border-radius: 5px;
border: thin solid #888;
box-shadow: 1px 1px 1px grey;
white-space: nowrap;
}
#GgCustomLogin {
cursor: pointer;
}
span.label {
font-family: serif;
font-weight: normal;
}
span.icon {
background: url('/nlib/images/nlib/sign-in/g-normal.png') transparent 5px 50% no-repeat;
display: inline-block;
vertical-align: middle;
width: 42px;
height: 42px;
}
span.buttonText {
display: inline-block;
vertical-align: middle;
padding-left: 10px;
padding-right: 42px;
font-size: 14px;
width:140px;
font-weight: bold;
/* Use the Roboto font that is loaded in the <head> */
font-family: 'Roboto', sans-serif;
}
</style>
</head>
<body>
로그인<br>
<form id="loginForm" name="loginForm" method="post">
<div>ID <input type="text" id="username" name="username" placeholder="아이디(이메일)"></div>
<div>PW <input type="password" id="password" name="password" placeholder="비밀번호"></div>
<input type="button" class="btn_login" value="로그인" onclick="actionLogin()"> <!-- 로그인 -->
<input type="hidden" id="username" name="username">
<input type="hidden" id="password" name="password">
<div id = "naver_id_login"></div>
<a id="kakao-login-btn"></a>
<a href="http://developers.kakao.com/logout"></a>
<ul>
<li id="GgCustomLogin">
<div id="GgCustomLogin">
<a href="javascript:void(0)">
<span>Login with Google</span>
<span class="icon"></span>
<span class="buttonText">구글아이디로 로그인</span>
</a>
</li>
</div>
</ul>
<a href="/nlib/member/selectMemberJoiningInfo.do">회원가입</a> <!-- 회원가입 -->
<a href="/nlib/member/searchIdForm.do">ID|비밀번호찾기</a> <!-- 회원가입 -->
<input type="button" onclick="signUp();" value="회원가입">
<input type="button" onclick="findInfo();" value="ID|비밀번호찾기">
<input type="hidden" name="authKey" id="authKey" value="yjhOJW0gKZ13f0/mofcEeA==" /> <br />
<input type="hidden" name="page" id="page" value="1" /> <br />
<input type="hidden" name="rows" id="rows" value="10" /> <br />
@ -88,13 +121,14 @@
<script type="text/javascript">
//----------네이버--------------
var naver_id_login = new naver_id_login("jefkoYhSfrQ3TtZz5mTp", "http://www.example.com/nlib/login/naverLoginResultPopup.do"); // Client ID, CallBack URL 삽입
// 단 'localhost'가 포함된 CallBack URL
var state = naver_id_login.getUniqState();
naver_id_login.setButton("green", 4, 40);
naver_id_login.setButton("green", 6, 48);
naver_id_login.setDomain("http://www.example.com/nlib/login/loginForm.do"); // URL
naver_id_login.setState(state);
naver_id_login.setPopup();
@ -138,7 +172,8 @@ function init() {
// 인스턴스의 함수 호출 - element에 로그인 기능 추가
// GgCustomLogin은 li태그안에 있는 ID, 위에 설정한 options와 아래 성공,실패시 실행하는 함수들
gapi.auth2.getAuthInstance().attachClickHandler('GgCustomLogin', options, onSignIn, onSignInFailure);
})
});
}
function onSignIn(googleUser) {
var access_token = googleUser.getAuthResponse().access_token

View File

@ -37,7 +37,30 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javaScript" language="javascript" defer="defer">
function signUp(){
var p = document.getElementById('password');
var p_cf = document.getElementById('passwordConfirm');
if(p.value != p_cf.value)
{
alert("비밀번호가 일치하지 않습니다. 확인해 주세요.");
p_cf.focus();
return false;
}
if($("#phoneCertYn").val()!="Y")
{
alert("휴대전화 인증이 필요합니다.");
return false;
}
if(confirm("회원가입하시겠습니까?")){
alert("회원가입 되었습니다.");
return true;
}else{
return false;
}
}
function goPopup(){
// 주소검색을 수행할 팝업 페이지를 호출합니다.
// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다.
@ -150,7 +173,7 @@ function checkBirthday() {
var age = calcAge(birthday);
if (age < 0) {
return false;
} else if (age >= 120) {
} else if (yy < 1900) {
return false;
} else {
return true;
@ -284,40 +307,42 @@ label.error {
<b><font size="6" color="gray">회원가입</font></b>
<br><br><br>
<form id="joinForm" name="joinForm" action="/member/insertMemberInfo.do" method="post">
<form id="joinForm" name="joinForm" action="/nlib/member/insertMemberInfo.do" method="post" onsubmit="return signUp()">
<table>
<tr>
<td id="title">아이디</td>
<td>
<input type="text" id="id" name="id" maxlength="30" value=<c:out value="${loginVO.id}"/> class="required">
<input type="email" id="id" name="id" maxlength="30" value=<c:out value="${loginVO.id}"/> required >
</td>
</tr>
<tr>
<td id="title">비밀번호</td>
<td>
<input type="password" id="password" name="password">
<input type="password" id="password" name="password" minlength="8" maxlength="16"
oninvalid="this.setCustomValidity('8~16자 영문 대 소문자, 숫자, 특수문자를 사용하세요.')"
pattern="^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,16}$">
</td>
</tr>
<tr>
<td id="title">비밀번호 확인</td>
<td>
<input type="password" id="passwordConfirm" name="passwordConfirm">
<input type="password" id="passwordConfirm" name="passwordConfirm" minlength="8" maxlength="16" pattern="\d*" required>
</td>
</tr>
<tr>
<td id="title">이름</td>
<td>
<input type="text" id="name" name="name" maxlength="40" value=<c:out value="${loginVO.name}"/>>
<input type="text" id="name" name="name" maxlength="20" required value=<c:out value="${loginVO.name}"/> >
</td>
</tr>
<tr>
<td id="title">생일</td>
<td>
<input type="text" id="birth_yy" name="birth_yy" maxlength="4" placeholder="년(4자)" size="6" value=<c:out value="${loginVO.birth_yy}"/> >
<select id="birth_mm" name="birth_mm" value=<c:out value="${loginVO.birth_mm}"/>>
<input type="text" id="birth_yy" name="birth_yy" maxlength="4" placeholder="년(4자)" required pattern="^(19|20)\d{2}$" value=<c:out value="${loginVO.birth_yy}"/> >
<select id="birth_mm" name="birth_mm" value=<c:out value="${loginVO.birth_mm}"/> required>
<option value="">월</option>
<option value="01" >1</option>
<option value="02" >2</option>
@ -332,21 +357,21 @@ label.error {
<option value="11" >11</option>
<option value="12" >12</option>
</select>
<input type="text" id="birth_dd" name="birth_dd" maxlength="2" placeholder="일" size="4" value=<c:out value="${loginVO.birth_dd}"/>>
<input type="text" id="birth_dd" name="birth_dd" size="2" maxlength="2" placeholder="일" size="4" value=<c:out value="${loginVO.birth_dd}"/> required pattern="^(0[1-9]|[12][0-9]|3[0-1])$">
</td>
</tr>
<tr>
<td id="title">휴대전화</td>
<td id="Cert">
<input type="text" id="phone" name="phone" value=<c:out value="${loginVO.phone}"/>><button type="button" style="text-align:left;" class="btn-warning" onclick="phoneCert()">인증번호 받기</button>
<div id="phoneCertForm" style="display:none;"><br><input type='text' id='phoneCertNum' name='phoneCertNum'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certNumCheck()'>인증번호 확인</button></div>
<input type="text" id="phone" name="phone" required value=<c:out value="${loginVO.phone}"/>><button type="button" style="text-align:left;" class="btn-warning" onclick="phoneCert()" required>인증번호 받기</button>
<div id="phoneCertForm" style="display:none;"><br><input type='text' id='phoneCertNum' name='phoneCertNum'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certNumCheck()' >인증번호 확인</button></div>
</td>
</tr>
<tr>
<td id="title">주소</td>
<td>
<input type="text" id="zipNo" name="zipNo" readonly><button type="button" style="text-align:left;" class="btn-warning" onclick="goPopup()">주소검색</button><br>
<input type="text" id="roadAddrPart" name="roadAddrPart" readonly><input type="text" id="addrDetail" name="addrDetail" readonly>
<input type="text" id="zipNo" name="zipNo" readonly required><button type="button" style="text-align:left;" class="btn-warning" onclick="goPopup()">주소검색</button><br>
<input type="text" id="roadAddrPart" name="roadAddrPart" readonly required><input type="text" id="addrDetail" name="addrDetail" readonly required>
</td>
</tr>
@ -357,158 +382,5 @@ label.error {
</form>
</div>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// Form값 유효성 체크 , script가 head가 아닌 body에 포함되어야함
// - UserId : 9~50자 이메일 형식(regx:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/)
// - NickName : 한글 2~10자, 영숫자 4~20자 조합(4바이트 이상 20바이트 이하)
// - Password : 8~16자 영문, 숫자, 특수문자 조합
// - ConfirmPassword : 8~16자 영문, 숫자, 특수문자 조합(비밀번호 확인)
/* jquery validation 플러그인 옵션
debug : true일 경우 validation 후 submit을 수행하지 않음. (default: false)
onfocusout : onblur 시 해당항목을 validation 할 것인지 여부 (default: true)
rules : 각 항목별로 validation rule을 지정한다.
messages : rules에서 정의된 조건으로 validation에 실패했을 때 화면에 표시할 메시지를 지정한다.
errorPlacement : validator는 기본적으로 validation 실패 시 실패한 노드 우측에 실패 메시지를 표시하게 되어있다. 작동을 원하지 않으면 내용이 없는 errorPlacement를 선언한다.
invalidHandler : validation 실패 시의 핸들러를 정의한다.
submitHandler : 유효성 검사가 완료된 뒤 수행할 핸들러를 정의한다. 주의 할 점은 이 옵션을 명시할 경우 'submit' 이벤트만 발생하며 실제 FORM 전송은 일어나지 않는다는 것이다. 만약 submitHandler를 명시하지 않으면 유효성 검사 후 온전한 submit을 수행한다.
*/
$("#joinForm").validate({
focusCleanup: true, //true이면 잘못된 필드에 포커스가 가면 에러를 지움
focusInvalid:false, //유효성 검사후 포커스를 무효필드에 둠 꺼놓음
onclick: false, //클릭시 발생됨 꺼놓음
onfocusout:false, //포커스가 아웃되면 발생됨 꺼놓음
onkeyup:false, //키보드 키가 올라가면 발생됨 꺼놓음
/* rules 속성값
required : 입력 필수 항목설정. text, password, select, radio, checkbox type에 사용된다. ex) required : true
remote : 외부 URL을 이용한 validation이 필요한 경우 사용한다.
equalTo : 다른 FORM 항목과 동일한 값인지 체크한다.
minlength : 최소 길이 체크. ex) minlength : 3
maxlength : 최대 길이 체크. ex) maxlength : 10
rangelength : 길이 범위 체크. ex) rangelength : [2, 6] (2글자 이상 6글자 이하)
min : 숫자의 최소값 체크. ex) min : 13 (13보다 작을 경우 false)
max : 숫자의 최대값 체크. ex) max : 5 (5보다 클 경우 false)
range : 숫자의 범위 체크. ex) range : [13, 24] (13보다 작거나 24보다 클 경우 false)
email : 이메일 형식의 값인지 체크. ex) email : true
url : 유효한 url 형식인지 체크. ex) url : true
date : 유효한 날짜 형식의 값인지 체크
dateISO : 유효한 국제표준 날짜 형식인지 체크. ex) dateISO : true
number : 유효한 숫자인지 체크. ex) number : true
digits : 유효한 digit 값인지 체크. number와 다른점은 양의 정수만 허용한다. 즉, 소수와 음수일 경우 false
creditcard : 유효한 카드번호 형식인지 체크. 공식페이지에서는 creditcard rule을 그대로 적용하지 말고 현지 사정에 맞게 수정하라고 권장한다. ex) creditcard : true
*/
rules : {
id : { minlength:9, maxlength:50, email:true},
password : {required:true, minlength:8, maxlength:16, regx:/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@@#$%^&+=]).*$/},
passwordConfirm : {required:true, equalTo:"#password"},
name : {required:true},
birth_yy : {required:true,regx:/^(19|20)\d{2}$/,dateCheck:"날짜체크"},
birth_mm : {required:true},
birth_dd : {required:true},
phone : {required:true,regx:/^\d{3}\d{3,4}\d{4}$/,regx2:"인증체크"},
zipNo : {required:true},
roadAddrPart : {required:true},
addrDetail : {required:true}
/* NickName : {required:true, minbytelength:4, maxbytelength:20, regx:/^[ㄱ-ㅎ|가-힣|a-z|A-Z|0-9|\*]+$/},
Password : {required:true, minlength:8, maxlength:16, regx:/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@@#$%^&+=]).*$/},
ConfirmPassword : {required:true, equalTo:"#Password"} */
},
messages : {
id : {required:"필수 정보입니다.", minlength:jQuery.validator.format("최소 {0}자 이상을 입력하세요."), maxlength:jQuery.validator.format("최대 {0}자 이하"), email:"형식에 맞지 않는 이메일입니다."},
password : {required:"필수 정보입니다." ,minlength:jQuery.validator.format("최소 {0}자 이상을 입력하세요."), maxlength:jQuery.validator.format("최대 {0}자 이하"), regx:"8~16자 영문 , 숫자, 특수문자를 사용하세요."},
passwordConfirm : {required:"필수 정보입니다." ,equalTo:"입력한 비밀번호가 서로 일치하지 않습니다."},
name : {required:"필수 정보입니다."},
birth_yy : {required:"필수 정보입니다.",regx:"형식에 맞지 않는 년도입니다.",dateCheck:"생년월일을 다시 확인해주세요."},
birth_mm : {required:"필수 정보입니다."},
birth_dd : {required:"필수 정보입니다."},
phone : {required:"필수 정보입니다.", regx:"형식에 맞지 않는 번호입니다.", regx2:"인증이 필요합니다." },
zipNo : {required:"필수 정보입니다."},
roadAddrPart : {required:"필수 정보입니다."},
addrDetail : {required:"필수 정보입니다."}
/* NickName : {required:"닉네임 필드가 필요합니다.", minbytelength:jQuery.validator.format("최소 {0}바이트 이상(한글 2자, 영숫자 4자)"), maxbytelength:jQuery.validator.format("최대 {0}바이트 이하(한글 10자, 영숫자 20자)"), regx:"닉네임 형식이 잘못되었습니다."},
Password : {required:"비밀번호 필드가 필요합니다.", minlength:jQuery.validator.format("최소 {0}자 이상을 입력하세요"), maxlength:jQuery.validator.format("최대 {0}자 이하"), regx:"비밀번호 형식이 잘못되었습니다."},
ConfirmPassword : {required:"비밀번호 확인 필드가 필요합니다.", equalTo:"입력한 비밀번호가 서로 일치하지 않습니다."} */
},
/*errorPlacement: function(error, element) {
},*/
/* invalidHandler : function(form, validator) {
var errors = validator.numberOfInvalids();
if( errors )
{
validator.errorList[0].element.focus();
}
}, */
submitHandler: function(form) {
document.joinForm.action="/nlib/member/insertMemberInfo.do";
document.joinForm.submit();
}
});
});
/*jquery.validate_add.js에 삽입되어야 할것들 새로운 규칙을 커스텀마이징 할수있음. */
//정규식을 적용
$.validator.addMethod("regx", function(value, element, regexpr) {
return regexpr.test(value);
});
$.validator.addMethod("dateCheck", function(value, element, param) {
return checkBirthday();
});
$.validator.addMethod("regx2", function(value, element, regexpr) {
if($("#phoneCertYn").val()=='Y')
{
return true;
}
return false;
});
// 한글, 영어를 체크하여 계산된 바이트 길이를 최소 길이와 비교
$.validator.addMethod('minbytelength', function (value, element, param) {
var nMin = param;
var nBytes = $.type(value) !== "string" ? 0 : value.getByteLength(); // 문자열의 Byte 길이를 반환(한글은 2byte이며 영숫자는 1byte)
return this.optional(element) || (nBytes === 0 || nBytes >= nMin);
});
// 한글, 영어를 체크하여 계산된 바이트 길이를 최대 길이와 비교
$.validator.addMethod('maxbytelength', function (value, element, param) {
var nMax = param;
var nBytes = $.type(value) !== "string" ? 0 : value.getByteLength(); // 문자열의 Byte 길이를 반환(한글은 2byte이며 영숫자는 1byte)
return this.optional(element) || (nBytes === 0 || nBytes <= nMax);
});
// 한글, 영어를 체크하여 계산된 바이트 길이를 최소 길이와 최대 길이 비교
$.validator.addMethod('bytelength', function (value, element, params) {
var nMin = params.min;
var nMax = params.max;
var nBytes = $.type(value) !== "string" ? 0 : value.getByteLength(); // 문자열의 Byte 길이를 반환(한글은 2byte이며 영숫자는 1byte)
return this.optional(element) || (nBytes === 0 || (nBytes >= nMin && nBytes <= nMax));
});
</script>
</body>
</html>

View File

@ -43,8 +43,10 @@ function snsCertForm(){
</script>
</head>
<body>
${result.info["terms"]}
<input type="checkbox" id="agree">동의
<input type="button" value="다음" onclick="snsCertForm();">
<div style="width:500px;">
<textarea style="height:200px;width:500px;">${result.info["terms"]}</textarea>
<br><div style="float: right;"><input type="checkbox" id="agree" >동의</div>
<br><br><input type="button" value="다음" onclick="snsCertForm();" style="float: right;">
</div>
</body>
</html>

View File

@ -60,6 +60,8 @@
<meta name ="google-signin-client_id" content="879126511006-jro7bld7b2epl3n5mkksp0p24k2inbpu.apps.googleusercontent.com">
<script type="text/javascript" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" charset="utf-8"></script>
<script src = "//developers.kakao.com/sdk/js/kakao.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" type="text/css">
<script src="https://apis.google.com/js/api:client.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
window.snsLogin = function(){
@ -69,6 +71,44 @@
f.submit();
}
</script>
<style type="text/css">
#GgCustomLogin {
display: inline-block;
background: white;
color: #444;
width: 222px;
height: 49px;
border-radius: 5px;
border: thin solid #888;
box-shadow: 1px 1px 1px grey;
white-space: nowrap;
}
#GgCustomLogin {
cursor: pointer;
}
span.label {
font-family: serif;
font-weight: normal;
}
span.icon {
background: url('/nlib/images/nlib/sign-in/g-normal.png') transparent 5px 50% no-repeat;
display: inline-block;
vertical-align: middle;
width: 42px;
height: 42px;
}
span.buttonText {
display: inline-block;
vertical-align: middle;
padding-left: 10px;
padding-right: 42px;
font-size: 14px;
width:140px;
font-weight: bold;
/* Use the Roboto font that is loaded in the <head> */
font-family: 'Roboto', sans-serif;
}
</style>
</head>
<body>
SNS 인증<br>
@ -85,13 +125,14 @@ SNS 인증<br>
<a id="kakao-login-btn"></a>
<a href="http://developers.kakao.com/logout"></a>
<ul>
<li id="GgCustomLogin">
<a href="javascript:void(0)">
<span>Login with Google</span>
</a>
</li>
</ul>
<ul>
<div id="GgCustomLogin">
<a href="javascript:void(0)">
<span class="icon"></span>
<span class="buttonText">구글아이디로 로그인</span>
</a>
</div>
</ul>
</form>
@ -102,7 +143,7 @@ SNS 인증<br>
// 단 'localhost'가 포함된 CallBack URL
var state = naver_id_login.getUniqState();
naver_id_login.setButton("green", 4, 40);
naver_id_login.setButton("green", 6, 48);
naver_id_login.setDomain("http://www.example.com/nlib/member/snsCertForm.do"); // URL
naver_id_login.setState(state);
naver_id_login.setPopup();

View File

@ -75,9 +75,13 @@ document.addEventListener('keydown', function(event) {
}, true);
function update(){
alert("수정되었습니다.");
document.updateForm.action="/nlib/userInfo/getMyInfo.do";
document.updateForm.submit();
if(confirm("수정하시겠습니까?")){
alert("수정되었습니다.");
document.updateForm.action="/nlib/userInfo/getMyInfo.do";
document.updateForm.submit();
}else{
return false;
}
}
</script>
<style type="text/css">
@ -182,7 +186,7 @@ label.error {
</table>
<br>
<input type="hidden" id="phoneCertYn" name="phoneCertYn" value=<c:out value="N"/>>
<input type="button" onclick="update();" value="수정"/> <input type="button" value="취소">
<input type="button" onclick="update();" value="수정"/> <input type="button" onclick="javascript:location.href='${pageContext.request.contextPath}/userInfo/getMyInfo.do';" value="취소">
</form>
</div>
</body>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입완료</title>
</head>
<body>
<span style="color:orange">${userName}</span>님 회원가입이 완료되었습니다.
</body>
</html>