다음 html5 입력 요소가 있습니다.
<input type="number">
이 입력이 왜 문자 ‘e’를 입력 필드에 입력 할 수있게합니까? 다른 알파벳 문자를 입력 할 수 없습니다 (예상대로)
크롬 사용하기 44.0.2403.107
무슨 뜻인지 확인하려면 : http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_number
답변
그것이 정확히 스펙 이 작동한다고 말하는 방식이기 때문 입니다. 숫자 입력은 음수 기호 및 또는 문자를 포함하여 부동 소수점 숫자를 사용할 수 있습니다 (여기서 지수는 또는 뒤에있는 숫자 임).e
E
e
E
부동 소수점 숫자는 정확히 다음 순서로 다음과 같은 부분으로 구성됩니다.
- 선택적으로, 첫 번째 문자는 ”
-
“문자 일 수 있습니다 .- ”
0—9
” 범위에있는 하나 이상의 문자- 선택적으로 다음 부분은 정확히 다음 순서로 수행됩니다.
- ”
.
“문자- ”
0—9
” 범위에있는 하나 이상의 문자- 선택적으로 다음 부분은 정확히 다음 순서로 수행됩니다.
- ”
e
“문자 또는 ”E
“문자- 선택적으로 ”
-
“문자 또는 ”+
“문자- ”
0—9
” 범위에있는 하나 이상의 문자
답변
아래와 같이 간단하게 만들 수 있습니다
<input type="number" onkeydown="javascript: return event.keyCode == 69 ? false : true" />
업데이트 된 답변
@ 88 MPG가 제안한대로 더욱 간단하게 만들 수 있습니다
<input type="number" onkeydown="return event.keyCode !== 69" />
답변
“e”는 숫자 기호 인 지수를 나타내므로 HTML 입력 숫자 유형은 “e / E”를 허용합니다.
예 200000은 2e5로 쓸 수도 있습니다. 이것이 질문에 감사하는 데 도움이되기를 바랍니다.
답변
숫자로만 구성된 숫자를 사용 하는 가장 좋은 방법 은 다음과 같습니다.
<input type="number" onkeydown="javascript: return event.keyCode === 8 ||
event.keyCode === 46 ? true : !isNaN(Number(event.key))" />
이것은 ‘e’, ’-‘, ‘+’, ‘.’를 피합니다. … 숫자가 아닌 모든 문자!
숫자 키만 허용하려면 :
isNaN (번호 (event.key))
“백 스페이스”(키 코드 : 8) 및 “삭제”(키 코드 : 46)는 허용합니다 …
답변
<input type="number" onkeydown="return FilterInput(event)" onpaste="handlePaste(event)" >
function FilterInput(event) {
var keyCode = ('which' in event) ? event.which : event.keyCode;
isNotWanted = (keyCode == 69 || keyCode == 101);
return !isNotWanted;
};
function handlePaste (e) {
var clipboardData, pastedData;
// Get pasted data via clipboard API
clipboardData = e.clipboardData || window.clipboardData;
pastedData = clipboardData.getData('Text').toUpperCase();
if(pastedData.indexOf('E')>-1) {
//alert('found an E');
e.stopPropagation();
e.preventDefault();
}
};
답변
문자 e
와 빼기 기호를 모두 숨기려면 -
다음을 수행하십시오.
onkeydown="return event.keyCode !== 69 && event.keyCode !== 189"
답변
각도를 사용하여 e, +,-, E를 입력하도록 제한 할 수 있습니다.
<input type="number" (keypress)="numericOnly($event)"/>
numericOnly(event): boolean { // restrict e,+,-,E characters in input type number
debugger
const charCode = (event.which) ? event.which : event.keyCode;
if (charCode == 101 || charCode == 69 || charCode == 45 || charCode == 43) {
return false;
}
return true;
}