반응형
HTML
<input
type="number"
onkeypress="return isNumberKey(event)"
/>
JS
let decimalType = 1;
function isNumberKey(evt) {
let charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))
return true;
// Textbox value
let _value = event.srcElement.value;
// 소수점(.)이 두번 이상 나오지 못하게
if(decimalType == '특정타입') { // 특정 타입의 경우 아예 입력 못하게 막기
if (charCode == 46) {
return false;
}
} else {
let _pattern0 = /^\d*[.]\d*$/; // 현재 value값에 소수점(.) 이 있으면 . 입력불가
if (_pattern0.test(_value)) {
if (charCode == 46) {
return false;
}
}
}
// 소수점 컨트롤 0, 3, 4자리만 입력 가능하게 만들었다. 입력가능
let _pattern2;
switch(decimalType) {
case 1:
_pattern2 = /^\d*[.]\d{4}$/;
break;
case 2:
_pattern2 = /^\d*[.]\d{3}$/;
break;
case 0:
_pattern2 = /[^0-9]/g,'';
break;
default:
_pattern2 = /^\d*[.]\d{4}$/;
break;
}
if (_pattern2.test(_value)) {
return false;
}
return true;
}
이걸 만드는 이유가 귀찮아서 안 만들었는데, 여기저기 쓰게 되어서
굳이 귀찮음을 무릎쓰고 해당 코드를 찾아 변형해서 사용하고 있다.
해당 코드는 한글과 영문의 입력을 아예 막는 부분이다.
이상 끝.
728x90
'취업 > 자바스크립트' 카테고리의 다른 글
[JS] input 숫자만 또는 숫자, 영문만 입력하게하기 (0) | 2022.11.16 |
---|---|
[JS] AJAX 로딩바 사용시 async: false를 꺼줘야 한다. (0) | 2022.08.08 |
[JS] Masonry 레이아웃 구성하기. (0) | 2022.08.05 |
[Node.js] text파일 읽어와서 excel파일로 저장하기. (0) | 2022.07.29 |
[owlCarosel] ver 1.2.1 mouse event detect! 마우스 이벤트 감지 (0) | 2022.07.28 |