2013-04-16 119 views
-2

此代碼工作在IE瀏覽器,但無法在Chrome工作:與onkeypress事件事件問題

<input type="text" 
     name="txtFirstName" 
     class="txtbox" 
     onkeypress="charsCapsSpaceOnly()" 
     maxlength="30" 
     onpaste="return false" 
     autocomplete='off'> </td> 

function charsCapsSpaceOnly() { 
    event.keyCode = event.keyCode - 32; 
    if(((event.keyCode >= 65 && event.keyCode <= 90)) || (event.keyCode == 32)) { 
     event.keyCode = event.keyCode; 
    } else { 
     event.keyCode=0; 
    } 
} 
+4

試着在問題上打上標籤之前閱讀有用的彈出窗口。這與Java無關。 –

+0

你看過Chrome的調試器嗎?有沒有錯誤?在哪些行上? – jazzbassrob

+0

修改'event'對象上的元素不是一個好主意。我建議你嘗試'var key = event.keyCode - 32'(並將所有後面的'event.keyCode'改爲'key')。 – JJJ

回答

0

如果你想獲得的鍵碼,你將不得不使用這樣的:

function (event){ 
    var keyCode = !event.charCode ? event.which : event.charCode, 
    key = String.fromCharCode(keyCode); 
    .... 
} 

因爲IE是不同於其他瀏覽器(他們想要感覺特別:)))

1

這在IE9和Chrome中都可以使用。

function charsCapsSpaceOnly() 
{ 
    if (!(((event.keyCode >= 65 && event.keyCode <= 90)) || (event.keyCode == 32))) 
    { 
     event.keyCode=0;   // For IE 
     event.preventDefault();  // For chrome 
    } 
}