박정하 박정하 04-09
250409 박정하 생산연도 숫자 외 입력 제한
@1784d54029aa7aba85069c315858032a32467407
client/views/pages/bbsDcry/photo/PicHistoryInsert.vue
--- client/views/pages/bbsDcry/photo/PicHistoryInsert.vue
+++ client/views/pages/bbsDcry/photo/PicHistoryInsert.vue
@@ -22,7 +22,7 @@
         <div class="hr"></div>
         <dd>
           <label for="prdctnYear">생산연도</label>
-          <input type="text" id="prdctnYear" placeholder="생산연도를 입력하세요" v-model="requestDTO.prdctnYear">
+          <input type="text" id="prdctnYear" placeholder="생산연도를 입력하세요" v-model="requestDTO.prdctnYear" pattern="[0-9]{4}" maxlength="4" @input="onlyNumberInput">
         </dd>
         <div class="hr"></div>
         <dd>
@@ -327,6 +327,16 @@
         alert("제목을 입력해 주세요.");
         return;
       }
+      if (!this.$isEmpty(this.requestDTO.prdctnYear)) {
+        if (!/^\d+$/.test(this.requestDTO.prdctnYear)) {
+          alert("생산연도는 숫자만 입력 가능합니다.");
+          return;
+        }
+        if (this.requestDTO.prdctnYear.length !== 4) {
+          alert("생산연도는 4자리로 입력해주세요.");
+          return;
+        }
+      }
 
       let count = this.multipartFiles.length
       if (!this.$isEmpty(this.pageId)) {
@@ -424,6 +434,11 @@
         this.$router.push(routes['list']);
       }
     },
+
+    // 생산연도 입력 제한
+    onlyNumberInput() {
+      this.requestDTO.prdctnYear = this.requestDTO.prdctnYear.replace(/[^0-9]/g, '');
+    }
   }
 };
 </script>
client/views/pages/bbsDcry/video/VideoHistoryInsert.vue
--- client/views/pages/bbsDcry/video/VideoHistoryInsert.vue
+++ client/views/pages/bbsDcry/video/VideoHistoryInsert.vue
@@ -21,7 +21,7 @@
         <div class="hr"></div>
         <dd>
           <label for="prdctnYear">생산연도</label>
-          <input type="text" id="prdctnYear" placeholder="생산연도를 입력하세요" v-model="requestDTO.prdctnYear">
+          <input type="text" id="prdctnYear" placeholder="생산연도를 입력하세요" v-model="requestDTO.prdctnYear" pattern="[0-9]{4}" maxlength="4" @input="onlyNumberInput">
         </dd>
         <div class="hr"></div>
         <dd>
@@ -274,9 +274,19 @@
     // 등록
     async submitForm() {
       // 유효성 검사
-      if (!this.requestDTO.sj) {
+      if (!this.$isEmpty(this.requestDTO.sj)) {
         alert("제목을 입력해 주세요.");
         return;
+      }
+      if (!this.$isEmpty(this.requestDTO.prdctnYear)) {
+        if (!/^\d+$/.test(this.requestDTO.prdctnYear)) {
+          alert("생산연도는 숫자만 입력 가능합니다.");
+          return;
+        }
+        if (this.requestDTO.prdctnYear.length !== 4) {
+          alert("생산연도는 4자리로 입력해주세요.");
+          return;
+        }
       }
 
       let count = this.multipartFiles.length
@@ -370,6 +380,11 @@
         this.$router.push(routes['list']);
       }
     },
+
+    // 생산연도 입력 제한
+    onlyNumberInput() {
+      this.requestDTO.prdctnYear = this.requestDTO.prdctnYear.replace(/[^0-9]/g, '');
+    }
   }
 };
 </script>
client/views/pages/bbsMediaVido/MediaVideoInsert.vue
--- client/views/pages/bbsMediaVido/MediaVideoInsert.vue
+++ client/views/pages/bbsMediaVido/MediaVideoInsert.vue
@@ -21,7 +21,7 @@
         <div class="hr"></div>
         <dd>
           <label for="prdctnYear">생산연도</label>
-          <input type="text" id="prdctnYear" placeholder="생산연도를 입력하세요" v-model="requestDTO.prdctnYear">
+          <input type="text" id="prdctnYear" placeholder="생산연도를 입력하세요" v-model="requestDTO.prdctnYear" pattern="[0-9]{4}" maxlength="4" @input="onlyNumberInput">
         </dd>
         <div class="hr"></div>
         <dd>
@@ -158,6 +158,16 @@
         alert("제목을 입력해 주세요.");
         return;
       }
+      if (!this.$isEmpty(this.requestDTO.prdctnYear)) {
+        if (!/^\d+$/.test(this.requestDTO.prdctnYear)) {
+          alert("생산연도는 숫자만 입력 가능합니다.");
+          return;
+        }
+        if (this.requestDTO.prdctnYear.length !== 4) {
+          alert("생산연도는 4자리로 입력해주세요.");
+          return;
+        }
+      }
 
       try {
         if (this.$isEmpty(this.pageId)) {
@@ -198,6 +208,11 @@
         this.$router.push(routes['list']);
       }
     },
+
+    // 생산연도 입력 제한
+    onlyNumberInput() {
+      this.requestDTO.prdctnYear = this.requestDTO.prdctnYear.replace(/[^0-9]/g, '');
+    }
   }
 };
 </script>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/bbsNesDta/NewsReleaseInsert.vue
--- client/views/pages/bbsNesDta/NewsReleaseInsert.vue
+++ client/views/pages/bbsNesDta/NewsReleaseInsert.vue
@@ -22,7 +22,7 @@
         <div class="hr"></div>
         <dd>
           <label for="prdctnYear">생산연도</label>
-          <input type="text" id="prdctnYear" placeholder="생산연도를 입력하세요" v-model="requestDTO.prdctnYear">
+          <input type="text" id="prdctnYear" placeholder="생산연도를 입력하세요" v-model="requestDTO.prdctnYear" pattern="[0-9]{4}" maxlength="4" @input="onlyNumberInput">
         </dd>
         <div class="hr"></div>
         <dd>
@@ -276,6 +276,16 @@
         alert("제목을 입력해 주세요.");
         return;
       }
+      if (!this.$isEmpty(this.requestDTO.prdctnYear)) {
+        if (!/^\d+$/.test(this.requestDTO.prdctnYear)) {
+          alert("생산연도는 숫자만 입력 가능합니다.");
+          return;
+        }
+        if (this.requestDTO.prdctnYear.length !== 4) {
+          alert("생산연도는 4자리로 입력해주세요.");
+          return;
+        }
+      }
 
       try {
         const formData = new FormData();
@@ -358,6 +368,11 @@
         alert("올바르지 않은 경로를 요청하여 목록으로 이동합니다.");
         this.$router.push(routes['list']);
       }
+    },
+
+    // 생산연도 입력 제한
+    onlyNumberInput() {
+      this.requestDTO.prdctnYear = this.requestDTO.prdctnYear.replace(/[^0-9]/g, '');
     }
   }
 };
Add a comment
List