1
가격 필드가 있고 숫자 만 허용하고 싶습니다. (입력 [숫자] 등의 기본 html5 입력이 마음에 들지 않습니다. 이 :Firefox가 화살표 키와 % 및 '% 012'사이의 차이점을 이해하는 방법
<input type="text" name="price" placeholder="" onkeypress="validate(event)">
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode(key);
var code = theEvent.keyCode || theEvent.which;
var regex = /[0-9]/;
if(!regex.test(key) && code != 8/*backspace*/ && code != 37/*left*/ && code != 39/*right*/ && code != 13/*enter*/ && code != 46/*delet*/ && code != 9/*tab*/){
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
};
};
왼쪽 및 오른쪽 화살표 키와 같은 일부 문자가 표시되면 탭을 더 잘 탐색 할 수 있도록 추가됩니다. Chrome에서 완벽하게 작동합니다. Firefox에서는 의도하지 않게 일부 문자가 추가됩니다. 예를 들어, 왼쪽 화살표 키와 % 키 코드는 모두 동일합니다! 그래서 지금 내 가격 필드는 Firefox에서 %를 받아들입니다! 나는 또한 동일한 문제를 간단하게 표현한 regexp 코드를 발견했다. 어떻게하면 Firefox를 이해하게 할 수 있습니까?!
차이점을 알지 못했습니다! Txx – farid