如何keypress
停止keydown
.
我有一个keydown
处理程序,我需要停止keypress
事件。
实际上我有一个表格和文本框。
当用户enter按键时,keydown
触发事件并拥有处理程序。
表单提交将被触发keypress
,所以我需要在我的处理程序中停止该keypress
事件。keydown
如何keypress
停止keydown
.
我有一个keydown
处理程序,我需要停止keypress
事件。
实际上我有一个表格和文本框。
当用户enter按键时,keydown
触发事件并拥有处理程序。
表单提交将被触发keypress
,所以我需要在我的处理程序中停止该keypress
事件。keydown
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 以停止事件传播
在歌剧中,您必须使用keypress
事件来防止键盘事件的默认操作。keydown
用于防止所有浏览器中的默认操作,但不是在 Opera 中。
请参阅跨浏览器的键盘处理不一致的长列表。
在这里,我停止了 up/dn/left/right 键的事件冒泡:
$(document).on("keydown", function(e) {
if(e.keyCode >= 37 && e.keyCode <= 40) {
e.stopImmediatePropagation();
return;
}
});
我还从上面的答案中尝试了 e.preventDefault或event.cancelBubble = true,但它们没有影响。
写,
<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 处理程序中。
event.cancelBubble = true
在事件处理程序中尝试。
我能够得到 event.preventDefault(); 在 Safari 和 Firefox 中工作,但不能在 IE7 或 IE8 中工作。
如果您只想禁用 enter 键,请确保您还检查了键值(Enter 为 13)并且仅为该键设置 event.preventDefault()。
任何人都可以为 IE7/8 或 Opera 提供答案吗?
<input type="text" name="date" id="date" class="form-control select-calender" placeholder="Choose Date" value="" required >
$(document).on('keypress','#date',function(e){
e.preventDefault();
});