我有以下验证,只允许Javascript中的数字和小数
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
我在onkeypress='validate(event)'
此代码在IE中运行良好,但当我尝试使用Firefox退格键时,左右箭头键和空格不起作用。
我该如何解决这个问题?
答案 0 :(得分:1)
使用按键是正确的解决方案,但您只需要通过JS附加事件处理程序(无论如何这被认为是更好的做法),并使用如下内容:
$('#myInput').keypress(function(event){
validate(event)
});
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
if (key <48 || key > 57 || key == 190)//keycode is a number between 0 and 9 or '.'
...
};
答案 1 :(得分:0)
答案 2 :(得分:0)
keydown函数适用于所有浏览器。请使用keydown功能,它会工作!
实施例: -
$(document).keydown(function (e){
if(e.keyCode == 37) // left arrow
{
//code for left arrow
}
else if(e.keyCode == 39) // right arrow
{
//code for right arrow
}
});
答案 3 :(得分:0)
尝试
//allows number and hyphen only
function isNumeric(e)
{
var a = e.charCode;
if(a==0){return;}
return ((a >= 48 && a <= 57));
}
</script>
Firefox Backspace charcode 0。