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を返すと、イベントの伝播が停止します
Opera では、イベントを使用して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>
キーダウンハンドラーで。
event.cancelBubble = true
イベントハンドラで試してください。
event.preventDefault(); を取得できました。Safari と Firefox では動作しますが、IE7 や IE8 では動作しません。
Enter キーのみを無効にする場合は、キーの値 (Enter の場合は 13) も確認し、そのキーに対してのみ event.preventDefault() を設定していることを確認してください。
IE7/8またはOperaの答えを思いつくことができる人はいますか?