请问FireFox下如何禁用 空格?

十大酷刑我都用上了,FF下回车可以通过preventDefault来禁掉,但就是不能禁用掉空格,咋办?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">



New Web Project
<br> document.onkeydown = function(e){<br> //e.which = 0;<br><br> e.preventDefault();<br> //e.stopPropagation();<br> //e.cancelable = true;<br> }</p> <pre><code> function btfocus() { document.getElementById(&quot;bt&quot;).focus(); } &lt;/script&gt; &lt;/head&gt; &lt;body onload=&quot;btfocus()&quot;&gt; &lt;input id=&quot;bt&quot; type=&quot;button&quot; value=&quot;TestKeyboard&quot; onclick=&quot;alert(11)&quot;&gt; &lt;/body&gt; </code></pre> <p></html></p> <p>回车可以通过preventDefault来禁掉,但就是不能禁用掉空格,咋办?<br> [b]问题补充:[/b]<br> 忘了给大家说下场景,是这样的,点击某按钮后,会有一个层遮住整个页面,这时候鼠标点击无效,但键盘的回车和空格仍然有效,我是想禁用它。</p> <p>也就是对整个document的keydown事件监控,让用户键盘无效。</p> <p>所以不用判断keycode。</p> <p>PS:如果在ie下直接return false就可以了;问题是出在FF下,FF下不应该使用keycode的。preventDefault会阻止回车,但阻止不了空格。<br> [b]问题补充:[/b]<br> keyup可以禁止空格,回车又禁不掉了,晕呐<br> [b]问题补充:[/b]<br> 哈哈,真是无语哈,我就是绑定了两个事件,这兼容。。。</p> <p>不知兄弟对FF的blur有没研究啊, 我在输入框的blur事件里面让输入框重新获取焦点,居然不行!!!</p> <p>哎<br> [b]问题补充:[/b]<br> 转个自己对blur的研究贴</p> <p><a href="http://love2java.iteye.com/blog/436915">http://love2java.iteye.com/blog/436915</a><br> [b]问题补充:[/b]<br> 转个自己对blur的研究贴</p> <p><a href="http://love2java.iteye.com/blog/436915">http://love2java.iteye.com/blog/436915</a></p>

[code="javascript"]
document.getElementById("bt2").onblur = function(e){
window.setTimeout(function(){document.getElementById("bt2").focus();},0);
}
[/code]

做下延迟吧.

IE: blur发生在focus后
FF: blur发生在focus前调用

IE: 在onbeforedeactivate事件里用activeElement可以获得下一个对象
FF: blur事件发生在focus前面,而FF又没有中间事件
也可以自己模拟个itemfocuschanging事件吧

input禁止空格内容还是空格键?

如果是内容的话,直接判断内容然后回滚就ok了.
在keydown里面

监控onkeyup, 本地测试通过

[code="html"]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">



New Web Project document.onkeyup = function(e){ if(e.keyCode==32){ e.preventDefault(); } //e.which = 0; //e.preventDefault(); //e.stopPropagation(); //e.cancelable = true; } function test(){ alert('click') } function btfocus() { document.getElementById("bt").focus(); }
</head>
<body onload="btfocus()">



[/code]

document.[b]onkeyup[/b] = function(e){
e.preventDefault();
}

无语...

document.onkeyup = function(e){
e.preventDefault();
}
document.onkeydown = function(e){
e.preventDefault();
}