2010-12-08 43 views
1

我想在我的inputfields之一禁用退格,所以我寫了下面的jQuery:jquery + ie8:退格不被檢測到?

$("#noBackspacesHere").keypress(function(e){ 
      if(e.which == "8"){ 
       return false; 
      } 
     }); 

這在Firefox罰款,但似乎並沒有在IE8工作。 我已經閱讀.keyCode有問題,所以這就是爲什麼我去了。

回答

2

我只是打得四處鍵盤事件和​​將幫助你在這裏:

$("#noBackspacesHere").keydown(function(e) { 
    if (e.which == 8) { 
     return false; 
    } 
}); 

例子:http://jsfiddle.net/jonathon/7xBRf/

我做typeof(e.which),它說,它是一個數字,所以你不需要周圍的報價。我已經在IE8,Chrome和FF中測試過它,它似乎適用於它們。

+1

正確,奇怪的是,Backspace在IE中不會觸發按鍵事件。 – 2010-12-08 14:04:07

+1

謝謝你,相當驚訝的是,退格鍵不會在IE中觸發按鍵事件。 – jack 2010-12-08 14:09:31

3

@Jonathon Bolster的代碼不適用於Opera。

這應該在Opera,IE,FF和Chrome中工作。

$("#noBackspacesHere").bind("keypress keydown", function(e) { 
    if (e.which == 8) { 
     e.preventDefault(); 
    } 
}); 

此外,e.which是檢查鍵碼因爲jQuery標準化的事件對象,以便which將始終存在,無論你使用什麼瀏覽器的首選方式。