10 글 보임 - 1 에서 10 까지 (총 10 중에서)
-
글쓴이글
-
2022년 10월 13일 15:46 #50136
오보배참가자안녕하세요 선생님! 항상 강의 잘 보고 있습니다. watcher 강의를 듣고 나서 평소처럼 숙제를 하고 있었는데 궁금한 점이 생겨서 글을 작성하게 되었습니다. 제가 작성한 코드는 아래와 같습니다. <template> <input type="text" v-model.number="month"> <p> {{month}}개월 선택함 : {{ 원룸들[누른거].price * month}}</p> </template> <script> <span style="color: #ff6600;"><span style="color: #800080;">export defaul<span style="color: #800080;">t</span></span></span> { name: 'ModalItem', props: { 원룸들: Array, 누른거: Number, 모달창열렸니: Boolean, }, data () { return { month: 1, } }, methods: { closeModal(){ this.$emit('모달창닫기') } }, watch: { month(a){ // 사용자가 month를 글자로 입력하면 경고문 띄어주고 month의 초기값을 1로 바꿔주세요 const str = /\s/g; if(isNaN(a) == true) { alert('숫자만 입력해주세요.') this.month = 1 } else if (a.match(str)) { alert('숫자만 입력해주세요.') this.month = 1 } } } } </script> 1. 선생님께서 watch에 inNaN을 넣으셨지만 저는 처음에 typeof(a) == 'string' 을 넣었는데 이게 처음 초기값인 1을 지우기만 해도 alert창이 뜨던데 그 이유가 궁금합니다. 이미 v-model에 number만 들어간다고 명시를 해놓았는데 공백도 문자열로 잡혀서 그런걸까요? 그리고 무엇보다 typeof을 썼을 때, alert창은 뜨는데 month의 초기값이 1로 설정이 안되더라구요.. 숫자만 넣었을 때에도 계산이 안됩니다ㅜㅜ typeof을 처음부터하면 안되는거였을까요..? 2. 숙제내주신 부분을 활용해서 스페이스를 입력할 시에 alert가 뜨고 초기값을 1로 설정하도록 코드를 작성해보았는데 위처럼 코드를 작성할 시에 두 케이스 다 alert창은 표시가 되는데 month값이 초기화가 안됩니다ㅜㅜ 그리고 숫자만 입력했음에도 월세 계산이 되지 않습니당... 무슨 문제가 있는 걸까요?? 답변 주시면 감사하겠습니다!!
2022년 10월 14일 09:25 #50216
오보배참가자const str = /\s/g; else if (a.match(str)) { alert('숫자만 입력해주세요.') this.month = 1 } 추가한게 이건데 이게 되지 않아서요,,, alert은 뜨는데 초기화가 1로 되지 않습니다. else if를 if로 바꿔도 동일합니다.
2022년 10월 14일 09:57 #50224
오보배참가자앗 선생님 해결됐습니다!! 저는 공백이 '/\s/g' 이걸 뜻하는 줄 알았는데 그냥 ' '였네요...ㅠㅠㅠ 혼자 북치고 장구쳐서 죄송합니다...! 감사합니다!
2022년 10월 23일 19:34 #51299
hyeon참가자watch: { month(after) { if (after > 12) { alert("12이상 입력하지 마셈"); this.month = 1; } const str = /\s/g; if (isNaN(after) === true) { alert("숫자만 입력하셈"); this.month = 1; } else if (typeof after === "string" && after.match(str)) { alert("숫자만 입력하셈"); this.month = 1; } }, }, 올리신 거 참고해서 코드 작성했는데 초기값 1을 지우고 영어를 작성하면 한 개 작성하자마자 alert가 뜨는데 한글은 두 개를 작성해야 alert가 뜨고 또 2번 반복되서 뜨더라구요 혹시 해결하셨나요?
-
글쓴이글
10 글 보임 - 1 에서 10 까지 (총 10 중에서)
- 답변은 로그인 후 가능합니다.