event对象在IE和firefox下兼容写法
由于项目需求要求只能允许用户输入数字和小数,用到了event.keycode后IE系列、chrome浏览器都无问题,在firefox下出现了event not defined的错误
原因:火狐下event对象不能通过window.event获取到,而是在调用函数时以参数的形式传递的。
解决方案:将其改为兼容的写法即可。
另外注意: event对象的keyCode属性在火狐和其他浏览器下也不同,火狐使用的是event.which,所以这一块也写成兼容模式
例子:设置文本框只能输入数字和浮点数验证
<script type="text/javascript"> $(function(){ $('input[type=text]').css('ime-mode','Disabled').val(''); $('input[type=text]').bind('keypress',function(e){ var e = e || window.event; var key = e.keyCode?e.keyCode:e.which; return (/[\d.]/.test(String.fromCharCode(key))); }); }) </script>
朝朝暮暮.