728x90
input type="date"를 통해 달력을 사용할 때, 사용자 경험을 향상시키기 위해 날짜 입력을 막는다.
날짜 입력을 허용하면 임의로 날짜를 적용할 수 있기 때문.

그래서 input type="date"를 클릭하거나 포커스했을 때, 키보드로 바꿀 수 없고 선택만 가능하도록 해야한다.
ref를 이용해 DOM에 접근하고, showPicker 메소드를 사용해 적용한다.
이때 input 태그에는 click, focus 이벤트를 모두 적용한다.
<script setup lang="ts">
import { ref } from 'vue';
const dateRef = ref();
function dateInput(){
if(dateRef.value.showPicker){
dateRef.value.showPicker();
} else {
dateRef.value.readOnly = false;
dateRef.value.focus();
dateRef.value.readOnly = true;
}
}
</script>
<template>
<input @click="dateInput" @focus="dateInput" ref="dateRef" type='date' />
</template>
결과

'Study > Vue3' 카테고리의 다른 글
[Vue3] URL 쿼리스트링으로 검색 필터링하기 (0) | 2025.03.12 |
---|---|
[Vue3] 페이지 이동 함수 - router (0) | 2025.03.10 |
[Vue3] vee-validate 간단한 사용법 (라이브러리로 유효성 검사하기) (0) | 2024.12.11 |
[Vue3] 자식컴포넌트 input value값 가져오기 (defineModel) (0) | 2024.12.10 |
[Vue3] watch 함수를 이용해서 url 쿼리스트링 값 실시간으로 가져오기 (0) | 2024.12.06 |