Ver Fonte

생년월일 하이픈 자동입력 추가

huiwon.seo há 4 anos atrás
pai
commit
baada982cb

+ 1 - 2
src/main/webapp/WEB-INF/jsp/patient/new.jsp

@@ -3,7 +3,6 @@
 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <jsp:include page="${data._INCLUDE}/header.jsp"></jsp:include>
-
 <script type="text/javascript">
 function patientNewInit() {
     if( $( "#basalN" ).is( ":checked" ) ) {
@@ -267,7 +266,7 @@ $( function(){
                                                     <td>
                                                         <!-- 생년월일 -->
                                                         <div class="form-group calendar-bar mb-xl-0">
-                                                            <input type="text" class="form-control date-no-req jumin" id="jumin" name="jumin" autocomplete="off" placeholder="yyyy-mm-dd 형식으로 입력하세요" required>
+                                                            <input type="text" class="form-control date-no-req jumin" onKeyup="inputYMDNumber(this);" id="jumin" name="jumin" autocomplete="off" placeholder="yyyy-mm-dd 형식으로 입력하세요" required>
                                                             <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
                                                         </div>
                                                     </td>

+ 32 - 0
src/main/webapp/resources/js/common/common.js

@@ -200,4 +200,36 @@ function alertBox( obj ) {
             cancel: 'Cancel'
         }
     });
+}
+function inputYMDNumber(obj) {
+    // @see DELETE 키버튼이 눌리지 않은 경우에만 실행
+    if(event.keyCode != 8) {
+        // @see 숫자와 하이픈(-)기호의 값만 존재하는 경우 실행
+        if(obj.value.replace(/[0-9 \-]/g, "").length == 0) {
+            // @see 하이픈(-)기호를 제거한다.
+            let number = obj.value.replace(/[^0-9]/g,"");
+            let ymd = "";
+            // @see 문자열의 길이에 따라 Year, Month, Day 앞에 하이픈(-)기호를 삽입한다.
+            if(number.length < 4) {
+                return number;
+            } else if(number.length < 6){
+                ymd += number.substr(0, 4);
+                ymd += "-";
+                ymd += number.substr(4);
+            } else {
+                ymd += number.substr(0, 4);
+                ymd += "-";
+                ymd += number.substr(4, 2);
+                ymd += "-";
+                ymd += number.substr(6);
+            }
+            obj.value = ymd;
+        } else {
+            //@see 숫자와 하이픈(-)기호 이외의 모든 값은 삭제한다.
+            obj.value = obj.value.replace(/[^0-9 ^\-]/g,"");
+            return false;
+        }
+    } else {
+        return false;
+    }
 }