스페이스바를 입력하지않게하거나 특정 기호를 막고싶을때가 있다.
이때 keycode를 활용하면 좋은데 아래와같은 예시를 참고하면 좋다.
이벤트리스너를 사용할경우 입력이 되고나서 return false처리되는바람에 애먹었는데
onKeydown으로 변경하니 잘 작동하였다.
function detectMinus(){
const ninusDetect = document.querySelectorAll('#voteInput')
ninusDetect.forEach(each => {
each.onkeydown = function(e) {
if(!((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCode > 47 && e.keyCode < 58)
|| e.keyCode == 8)) {
return false;
}
}
})
}
detectMinus()
const detectSpace = (e) => {
if(e.key == ' ' || e.code == 'Space' || e.keyCode == 32){
return false
}else{
return true
}
}
//사용방법 1. html내
<input type="text" name="name" id="name" value="${name}" onkeydown="if(!valueCheck(event))return false;">
//사용방법 2. 이벤트
if(nameInput)nameInput.onkeydown = (e) =>{
if(!detectSpace(e)){
return false
}
}
반응형
'Frontend > 모던자바스크립트' 카테고리의 다른 글
While문 api 호출 리펙토링(setTimeout, setInterval) (0) | 2023.01.05 |
---|---|
parseInt()와 Number()의 차이 그리고.. (0) | 2023.01.02 |
공유하기, 클립보드 저장 (0) | 2022.12.15 |
window.onload()는 쓰지말자.(feat. readyState) (0) | 2022.11.08 |
wrapper 이벤트리스너 사용 최소화하기 (2) | 2022.10.07 |