common.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. $(function(){
  2. $.extend( $.validator.messages, { required: "필수 항목입니다.", remote: "항목을 수정하세요.", email: "유효하지 않은 E-Mail주소입니다.", url: "유효하지 않은 URL입니다.", date: "올바른 날짜를 입력하세요.", dateISO: "올바른 날짜(ISO)를 입력하세요.", number: "유효한 숫자가 아닙니다.", digits: "숫자만 입력 가능합니다.", creditcard: "신용카드 번호가 바르지 않습니다.", equalTo: "같은 값을 다시 입력하세요.", extension: "올바른 확장자가 아닙니다.", maxlength: $.validator.format( "{0}자를 넘을 수 없습니다. " ), minlength: $.validator.format( "{0}자 이상 입력하세요." ), rangelength: $.validator.format( "문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요." ), range: $.validator.format( "{0} 에서 {1} 사이의 값을 입력하세요." ), max: $.validator.format( "{0} 이하의 값을 입력하세요." ), min: $.validator.format( "{0} 이상의 값을 입력하세요." ) } );
  3. $.validator.addMethod( "passwordValid", function( value, element ) {
  4. return this.optional(element) || /^.*(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$/.test(value);
  5. }, "비밀번호를 확인하세요 (영문, 숫자, 특수문자를 혼합하여 8 ~ 15자 이내)" );
  6. $.validator.addMethod( "phoneValid", function( phoneNumber, element ) {
  7. var tel = /^(01[016789]{1}|02|0[3-9]{1}[0-9]{1})-?[0-9]{3,4}-?[0-9]{4}$/;
  8. if(this.optional(element) || (tel.test(phoneNumber))){
  9. trans_num = phoneNumber.replace(/^(01[016789]{1}|02|0[3-9]{1}[0-9]{1})-?([0-9]{3,4})-?([0-9]{4})$/, "$1-$2-$3");
  10. //$(element).val(trans_num);
  11. }
  12. return this.optional(element) || (tel.test(phoneNumber));
  13. }, "올바르지 않은 전화번호 입니다." );
  14. $.validator.addMethod( "idValid", function( value, element ) {
  15. return this.optional(element) || /^[A-Za-z0-9+]*$/.test(value);
  16. }, "영문, 숫자만 입력해주세요." );
  17. $.validator.addMethod( "dateTime", function( value, element ) {
  18. return this.optional(element) || /[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]/.test(value);
  19. }, "날짜형식을 올바르게 입력해주세요 yyyy-mm-dd hh:mm" );
  20. $.validator.addMethod( "date", function( value, element ) {
  21. return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString());
  22. }, "날짜형식을 올바르게 입력해주세요 yyyy-mm-dd" );
  23. $("form input:text").keydown(function(evt) {
  24. if (evt.keyCode == 13) {
  25. return false;
  26. }
  27. });
  28. });
  29. function getAjax( url, vv, success, error, done ){
  30. $.ajax({
  31. url : url,
  32. data : vv,
  33. method : "POST",
  34. dataType : "json",
  35. success : function( data ){
  36. if( typeof success == "function" ){
  37. success( data );
  38. };
  39. },
  40. error : function(){
  41. if( typeof error == "function" ) {
  42. error();
  43. };
  44. }
  45. }).done( function(){
  46. if( typeof done == "function" ){
  47. done();
  48. };
  49. });
  50. };
  51. function onlyNumber() {
  52. if((event.keyCode<48) || (event.keyCode>57)) {
  53. event.returnValue = false;
  54. }
  55. }
  56. function juso() {
  57. new daum.Postcode({
  58. oncomplete: function(data) {
  59. // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
  60. // 각 주소의 노출 규칙에 따라 주소를 조합한다.
  61. // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
  62. var addr = ''; // 주소 변수
  63. var extraAddr = ''; // 참고항목 변수
  64. //사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다.
  65. if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우
  66. addr = data.roadAddress;
  67. } else { // 사용자가 지번 주소를 선택했을 경우(J)
  68. addr = data.jibunAddress;
  69. }
  70. // 사용자가 선택한 주소가 도로명 타입일때 참고항목을 조합한다.
  71. if(data.userSelectedType === 'R'){
  72. // 법정동명이 있을 경우 추가한다. (법정리는 제외)
  73. // 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다.
  74. if(data.bname !== '' && /[동|로|가]$/g.test(data.bname)){
  75. extraAddr += data.bname;
  76. }
  77. // 건물명이 있고, 공동주택일 경우 추가한다.
  78. if(data.buildingName !== '' && data.apartment === 'Y'){
  79. extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
  80. }
  81. // 표시할 참고항목이 있을 경우, 괄호까지 추가한 최종 문자열을 만든다.
  82. if(extraAddr !== ''){
  83. extraAddr = ' (' + extraAddr + ')';
  84. }
  85. // 조합된 참고항목을 해당 필드에 넣는다.
  86. //document.getElementById("detailAddr").value = extraAddr;
  87. } else {
  88. //document.getElementById("detailAddr").value = '';
  89. }
  90. // 우편번호와 주소 정보를 해당 필드에 넣는다.
  91. /* document.getElementById('sample6_postcode').value = data.zonecode; */
  92. document.getElementById("mainAddr").value = addr + " " + extraAddr;
  93. // 커서를 상세주소 필드로 이동한다.
  94. document.getElementById("detailAddr").focus();
  95. }
  96. }).open();
  97. }
  98. function setCookie(cookieName, value, exdays){
  99. var exdate = new Date();
  100. exdate.setDate(exdate.getDate() + exdays);
  101. var cookieValue = escape(value) + ((exdays==null) ? "" : "; expires=" + exdate.toGMTString());
  102. document.cookie = cookieName + "=" + cookieValue;
  103. }
  104. function deleteCookie(cookieName){
  105. var expireDate = new Date();
  106. expireDate.setDate(expireDate.getDate() - 1);
  107. document.cookie = cookieName + "= " + "; expires=" + expireDate.toGMTString();
  108. }
  109. function getCookie(cookieName) {
  110. cookieName = cookieName + '=';
  111. var cookieData = document.cookie;
  112. var start = cookieData.indexOf(cookieName);
  113. var cookieValue = '';
  114. if(start != -1){
  115. start += cookieName.length;
  116. var end = cookieData.indexOf(';', start);
  117. if(end == -1)end = cookieData.length;
  118. cookieValue = cookieData.substring(start, end);
  119. }
  120. return unescape(cookieValue);
  121. }