728x90
반응형
input에 숫자만 입력되도록 설정하는 방법을 소개하겠습니다.
첫 번째 방법은 input type을 number로 지정하는 방법입니다.
<input type="number">
두 번째 방법은 text type일 때, ctrl+v나 마우스 우클릭하여 텍스트를 붙여 넣기 하더라도 숫자만 입력되도록 설정하는 방법입니다.
<input type="text" oninput="this.value = this.value.replaceAll(/\D/g, '')">
or
<form>
<input type="text" pattern="[0-9]+">
<input type="submit">
</form>
공통화하여 사용할 땐 아래처럼 설정합니다.
<input type="text" name="number1">
<input type="text" name="number2">
$(document).on("input", "[name=number1], [name=number2]", function() {
this.value = this.value.replaceAll(/\D/g, "");
});
그런데 위 방법은 갤럭시 삼성 브라우저에서는 작동하지 않습니다. (삼성 브라우저가 문제가 많음) 이와 같은 이슈도 발생할 수 있으니 뒷단에서 방어 로직을 추가해야 합니다.
728x90
반응형
'front-end > script' 카테고리의 다른 글
[jQuery] form 또는 ajax post 요청 시 csrf token 설정 (0) | 2021.11.04 |
---|---|
[javascript] 부모창과 자식창의 값 전달 window.opener (0) | 2021.07.15 |
[Javascript] html 화면 PDF다운로드 (jspdf.js, html2canvas.js) (0) | 2021.01.18 |
[javascript] 이미지 용량 줄이기 (이미지 리사이징) Compressor.js (0) | 2020.11.13 |
JSP에서 URL encode 하는 방법 (특수문자 UTF-8 인코딩) (0) | 2020.11.10 |
댓글