2013-04-16 61 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 
    } 
}