1. 程式人生 > >onkeypress 在js函式返回false後沒有反應

onkeypress 在js函式返回false後沒有反應

一、解決方案:

  把 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的,所以,它依舊是預設執行下去。