一、解决方案:
把 onkeypress = "function()" 改为 onkeypress = "event.returnValue=function()"
二、详细解释:
1. event.returnValue的作用就是:
当捕捉到事件(event)时,做某些判断,如果判断失败,则阻止当前事件继续运行,比如在type="number"的input,禁止输入字母"e",在输入时应该先判断然后禁止输入,如果不用event.returnValue,就算判断了不符合还是可以输入。
2. return false的作用就是:返回一个false值;
在一些用return false;禁止一些浏览器的默认行为的时候,由于原先默认的行为是ture,例如,<a>链接,点击事件发生后,紧接着的默认事件就是跳转链接,但是,在onclick=function(){return false;}之后,就可以对紧接着的默认事件进行禁止掉;
3. 这个event.returnValue与return false的区别是,在实战中,对表单验证而言,event.returnValue=fasle 和 return function(){return false} 的效果是一样的,都是先对表单的内容进行判断,才决定是否执行下去,但是,这个 return function(){return false} 和 function(){return false} 又是有区别的,前者是在先对函数的内容的判断上是否执行下去的,但是,后者则不会进行判断就直接执行下去了。
注意:onclick=""事件相当于 onclick=return true/false ,此时不管function ok(){return false} ,在onclick="ok()",都是直接返回ture的,所以,它依旧是默认执行下去。