2012-11-29 50 views
1

我正在玩一個textarea,並試圖讓它不超過maxLength,除非按下的鍵是退格鍵或刪除鍵。問題是我的keyCode條件總是出現爲true。這是爲什麼?檢查Bakcspace或刪除鍵

var maxLength = 500; 
window.onload = init;    // this seems to be a problem 
commentBox.onkeydown = checkLength; 

function checkLength(e) 
{ 
    var evt = e || window.event; 

    if(countText() < maxLength) //countText successfully returns number of nonwhitespace text. 
     return true; 
    else if(evt.keyCode == 46 || evt.keycode == 8) // 46 = delete, 8 = backspace. 
     return true; 
    else 
     return false; 
} 

這是JSFiddle,以幫助更好地理解。刪除鍵在JSFiddle中工作,但由於某種原因不在本地。另一方面刪除仍然不起作用。

+2

不要那樣做。您只關心在用戶提交數據時輸入了正確數量的字符,然後纔對您不感興趣。只要告訴他們他們是否超出限制,並讓用戶將其排除。 – RobG

回答

4

發現它終於....

您正在使用evt.keycode這是一個小錯字錯誤

else if(evt.keyCode == 46 || evt.keyCode == 8) // 46 = delete, 8 = backspace. 

乾杯

+0

哦男人fml。謝謝! –