Fi3*_*n1k 6 javascript firefox space keycode onkeypress
Enter keyCode(13)
在所有浏览器上都可正常工作
keyCode(32)
我在Chrome上测试的空格键工作正常但在Firefox上没有响应.我使用了以下代码:
<script type="text/javascript" >
function enterPressed(evn) {
var e_id = $('e_id').value;
var e_fname = $('e_fname').value;
var e_role = $('e_role').value;
if (window.event && window.event.keyCode == 13) {
Monitor.Order.assign(e_id, e_fname, e_role);
} else if (evn && evn.keyCode == 13) {
Monitor.Order.assign(e_id, e_fname, e_role);
} else if (evn && evn.keyCode == 32) {
Monitor.Order.updateStatus('COOKED');
}
}
document.onkeypress = enterPressed;
</script>
Run Code Online (Sandbox Code Playgroud)
为什么这在Chrome中运行时无法在Firefox中运行?
空格是一个可打印的字符,因此按键事件将charCode
设置为与其对应的字符,并且keyCode
不会在Firefox中的按键事件上设置.
通常,您希望在keyup/keydown中使用keypress中的charCode
可打印内容keyCode
.
尝试这个代码,它会工作得很好......
function enterPressed(evn) {
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x
var e_id = $('e_id').value;
var e_fname = $('e_fname').value;
var e_role = $('e_role').value;
if (evn.which == 13) {
Monitor.Order.assign(e_id, e_fname, e_role);
} else if (evn.which == 13) {
Monitor.Order.assign(e_id, e_fname, e_role);
} else if (evn.which == 32) {
Monitor.Order.updateStatus('COOKED');
}
}
else{
var e_id = $('e_id').value;
var e_fname =$('e_fname').value;
var e_role = $('e_role').value;
if (window.event && window.event.keyCode == 13) {
Monitor.Order.assign(e_id, e_fname, e_role);
} else if (evn && evn.keyCode == 13) {
Monitor.Order.assign(e_id, e_fname, e_role);
} else if (evn && evn.keyCode == 32) {
Monitor.Order.updateStatus('COOKED');
}
}
}
document.onkeypress = enterPressed;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27477 次 |
最近记录: |