Przeglądaj źródła

validate 추가

huiwon.seo 4 lat temu
rodzic
commit
f366ae509e

+ 10 - 6
src/main/java/com/lemon/lifecenter/controller/StaffController.java

@@ -112,20 +112,24 @@ public class StaffController extends LifeCenterController {
     
     @RequestMapping( value="/duplicateIdCheck", method = RequestMethod.POST )
     @ResponseBody
-    public String duplicateIdCheck( @RequestParam( value="id", required = false, defaultValue = "" ) String id ) {
-        boolean result = false;
+    public boolean duplicateIdCheck( @RequestParam( value="staffId", required = false, defaultValue = "" ) String id ) {
+        boolean result = false; // false : 중복 , true : 중복아님
         JSONObject obj = new JSONObject();
         LoginDTO dto   = new LoginDTO();
         
         if( id.trim().equals( "" ) ) {
-            result = true;
+            result = false;
         } else {
             dto.setId( id.trim() );
-            loginService.selectMemberIdCount( dto );
+            int count = loginService.selectMemberIdCount( dto );
+            
+            if( count == 0 ) {
+                result = true;
+            }
         }
         
-        obj.put( "result" , result );
+//        obj.put( "result" , result );
         
-        return obj.toString();
+        return result;
     }
 }

+ 59 - 64
src/main/webapp/WEB-INF/jsp/center/new.jsp

@@ -6,65 +6,61 @@
 <jsp:include page="${data._INCLUDE}/header.jsp"></jsp:include>
 <script src="https://t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script>
 <script>
-
-function juso() {
-    new daum.Postcode({
-        oncomplete: function(data) {
-            // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
-
-            // 각 주소의 노출 규칙에 따라 주소를 조합한다.
-            // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
-            var addr = ''; // 주소 변수
-            var extraAddr = ''; // 참고항목 변수
-
-            //사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다.
-            if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우
-                addr = data.roadAddress;
-            } else { // 사용자가 지번 주소를 선택했을 경우(J)
-                addr = data.jibunAddress;
-            }
-
-            // 사용자가 선택한 주소가 도로명 타입일때 참고항목을 조합한다.
-            if(data.userSelectedType === 'R'){
-                // 법정동명이 있을 경우 추가한다. (법정리는 제외)
-                // 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다.
-                if(data.bname !== '' && /[동|로|가]$/g.test(data.bname)){
-                    extraAddr += data.bname;
-                }
-                // 건물명이 있고, 공동주택일 경우 추가한다.
-                if(data.buildingName !== '' && data.apartment === 'Y'){
-                    extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
-                }
-                // 표시할 참고항목이 있을 경우, 괄호까지 추가한 최종 문자열을 만든다.
-                if(extraAddr !== ''){
-                    extraAddr = ' (' + extraAddr + ')';
-                }
-                // 조합된 참고항목을 해당 필드에 넣는다.
-                //document.getElementById("detailAddr").value = extraAddr;
-            
-            } else {
-                //document.getElementById("detailAddr").value = '';
-            }
-
-            // 우편번호와 주소 정보를 해당 필드에 넣는다.
-            /* document.getElementById('sample6_postcode').value = data.zonecode; */
-            
-            document.getElementById("mainAddr").value = addr + " " + extraAddr;
-            // 커서를 상세주소 필드로 이동한다.
-            document.getElementById("detailAddr").focus();
-            
-        }
-    }).open();
-}
-
-function onlyNumber() {
-    if((event.keyCode<48) || (event.keyCode>57)) {
-        event.returnValue = false;
-    }
-}
-
 $( function(){
     $( "#newForm" ).validate({
+        rules: {
+            centerName : {
+                minlength : 2,
+                maxlength : 100
+            },
+            staffId: {
+                minlength : 4,
+                maxlength : 20,
+                idValid :  true,
+                remote : { 
+                    type : "POST",
+                    url  : "/staff/duplicateIdCheck",
+                    data : { 
+                        staffId : function(){
+                            return $( "input[name='staffId']" ).val();
+                        }
+                    }
+                }
+            },
+            centerNumber : {
+                phoneValid : true
+            },
+            staffPhoneNumber : {
+                phoneValid : true
+            },
+            staffPw : {
+                minlength : 8,
+                maxlength : 15,
+                passwordValid : true
+            },
+            totalCapacity :{
+                number:true
+            },
+            totalStaff :{
+                number:true
+            }
+        },
+        messages : {
+            staffId : {
+                remote : "이미 존재하는 아이디입니다"
+            },
+            staffPw : {
+                minlength : "비밀번호를 확인하세요 (영문, 숫자, 특수문자를 혼합하여 8 ~ 15자 이내)",
+                maxlength : "비밀번호를 확인하세요 (영문, 숫자, 특수문자를 혼합하여 8 ~ 15자 이내)"
+            }
+        },
+        onkeyup: function( element, event ) {
+            $( element ).valid();
+        },
+        onfocusout: function (element) {
+            $( element ).val( $.trim( $( element ).val() ) );
+            $( element ).valid();
+        },
         submitHandler: function(form) {
             $("#mainAddr").removeAttr("disabled");
             form.submit();
@@ -120,7 +116,6 @@ $( function(){
                                                 <th><span class="fix">*</span>지역</th>
                                                 <td>
                                                     <select class="custom-select" name="locationCode">
-                                                        <option>지역</option>
                                                         <c:forEach var="i" items="${locationList}">
                                                             <option value="${i.locationCode}"><c:out value="${i.locationName}"/></option>
                                                         </c:forEach>
@@ -147,27 +142,27 @@ $( function(){
                                             <tr>
                                                 <th><span class="fix">*</span>전화번호</th>
                                                 <td colspan="3">
-                                                    <input type="text" class="form-control" name="centerNumber" placeholder="010-1234-1234" required onkeypress="onlyNumber()">
+                                                    <input type="text" class="form-control" name="centerNumber" placeholder="'-'를 제외한 숫자만 입력하세요" required onkeypress="onlyNumber()">
                                                 </td>
                                             </tr>
                                             <tr>
                                                 <th><span class="fix">*</span>수용인원(명)</th>
                                                 <td>
-                                                    <input type="text" class="form-control" name="totalCapacity" required onkeypress="onlyNumber();">
+                                                    <input type="text" class="form-control" name="totalCapacity" required>
                                                 </td>
                                                 <th><span class="fix">*</span>의료진수 (명)</th>
                                                 <td>
-                                                    <input type="text" class="form-control" name="totalStaff" required onkeypress="onlyNumber();">
+                                                    <input type="text" class="form-control" name="totalStaff" required>
                                                 </td>
                                             </tr>
                                             <tr>
                                                 <th><span class="fix">*</span>아이디</th>
                                                 <td>
-                                                    <input type="text" class="form-control" name="staffId" required>
+                                                    <input type="text" class="form-control" name="staffId" autocomplete="off" maxlength="20" required>
                                                 </td>
                                                 <th><span class="fix">*</span>비밀번호</th>
                                                 <td>
-                                                    <input type="password" class="form-control" name="staffPw" placeholder="숫자, 영문, 특수문자 조합 8자리 이상" required>
+                                                    <input type="password" class="form-control" name="staffPw" placeholder="숫자, 영문, 특수문자 조합 8~15자 이내" maxlength="15" required>
                                                 </td>
                                             </tr>
                                             <tr>
@@ -177,7 +172,7 @@ $( function(){
                                                 </td>
                                                 <th><span class="fix">*</span>담당자 휴대전화번호</th>
                                                 <td>
-                                                    <input type="text" class="form-control" name="staffPhoneNumber" placeholder="010-1234-1234" required onkeypress="onlyNumber();">
+                                                    <input type="text" class="form-control" name="staffPhoneNumber"  placeholder="'-'를 제외한 숫자만 입력하세요" required onkeypress="onlyNumber();">
                                                 </td>
                                             </tr>
                                         </table>

Plik diff jest za duży
+ 95 - 1
src/main/webapp/resources/js/common/common.js