如何在keydown中停止按键事件。
我有一个keydown处理程序,我需要停止按键事件。
实际上我有一个表格和文本框。
当用户按下“enter”键时,keydown会触发事件并拥有处理程序。
表单提交将在按键中触发,所以我需要在我的keydown处理程序中停止按键事件。
答案 0 :(得分:43)
function onKeyDown(event) {
event.preventDefault();
}
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-Event-preventDefault
或
function onsubmit(event) {
return false;
}
返回false以停止事件传播
答案 1 :(得分:3)
在opera中,您必须使用keypress
事件来阻止键盘事件的默认操作。 keydown
可以防止所有浏览器中的默认操作,但不能用于Opera。
在浏览器的键盘处理中查看this long list of inconsistencies。
答案 2 :(得分:1)
在事件处理程序中尝试event.cancelBubble = true
。
答案 3 :(得分:1)
这里我停止了up / dn / left / right键冒泡的事件:
$(document).on("keydown", function(e) {
if(e.keyCode >= 37 && e.keyCode <= 40) {
e.stopImmediatePropagation();
return;
}
});
我还从上面的答案中尝试了 e.preventDefault 或 event.cancelBubble = true ,但它们没有任何影响。
答案 4 :(得分:0)
写入,
<script type="text/javascript">
function keyDn(obj)
{
if(window["event"]["keyCode"]==48) // key 0 will disabled keyPress event
{
obj["onkeypress"]=null;
}
}
function keyPs(obj)
{
alert("Keypress");
}
</script>
<form id="form1" runat="server">
<div>
<input type="text" onkeydown="keyDn(this)" onkeypress="keyPs(this)" />
</div>
</form>
在keydown处理程序中。
答案 5 :(得分:0)
我能够获得event.preventDefault();在Safari和Firefox中工作,但不适用于IE7或IE8。
如果您只想禁用回车键,请确保您还要检查键值(输入为13)并仅为该键设置event.preventDefault()。
任何人都可以为IE7 / 8或Opera找到答案吗?
答案 6 :(得分:0)
appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py:623:
MatplotlibDeprecationWarning: The MATPLOTLIBDATA environment variable
was deprecated in Matplotlib 3.1 and will be removed in 3.3.
exec(bytecode, module.__dict__)