バックスペースは、最後のページに戻るナビゲーションのブラウザホットキーです。入力にフォーカスがあると、このホットキーは無効になります。しかし、私はkeyupとkeydownイベントがこの入力にバインドされており、私が書いた何かがこの問題を引き起こしています。ユーザーがHTMLテキスト入力でバックスペースを入力したときに戻るのを避けるには?
解決方法をご存知ですか?
バックスペースは、最後のページに戻るナビゲーションのブラウザホットキーです。入力にフォーカスがあると、このホットキーは無効になります。しかし、私はkeyupとkeydownイベントがこの入力にバインドされており、私が書いた何かがこの問題を引き起こしています。ユーザーがHTMLテキスト入力でバックスペースを入力したときに戻るのを避けるには?
解決方法をご存知ですか?
この問題は、onKeyDownイベントを返す前に入力の削除が原因で発生しています。
入力要素からイベントを処理した場合、そのイベントのバブリングをキャンセルしてから戻します。
event.preventDefault()またはevent.stopPropagation()はIEとChromeの問題を解決します。しかし、私はまだFirefoxのための解決策を見つけていないhttp://www.quirksmode.org/js/events_order.html –
でも
if (event.keyCode==8)//where 8 ascii code of backspace
{
retunr;
}
あなたは、このような偶然のナビゲーションを防ぐためにwindow.onbeforeunloadイベントにフックしようとすることができ、あなたのonKeyDownメソッドまたはonKeyPressイベントでこれを試してみてください。
あなたが作ることができ:
バッファの新しい値がInputFieldの値になり、あなたのhotKeyFunctionを使用すると、InputFieldの新しい値がバッファ値になり、InputFieldが正常に機能します。
私はBackspaceキーによって生じるバックアクションを中和する同様の必要性、すなわちを持っていたし、私はそれはあなたを助けることを願っています。このサイト
http://www.webmasterworld.com/javascript/3785986.htm
にソリューションに出くわしました。
if (typeof(window.event)!='undefined')//ie
{document.onkeydown=function()
{var tag_name=event.srcElement.tagName.toUpperCase();
if (tag_name!='INPUT' && tag_name!='TEXTAREA')
{return event.keyCode!=8;
}
};
}
else //firefox, chrome
{window.addEventListener('keydown',function(evt){if (evt.keyCode==8){evt.preventDefault();}}, true);
}
入力にフォーカスがあり、バックスペースISが後方にナビゲートしているか、そうでないようにしたいのですか?あなたが見ている振る舞いは何ですか? – MadMurf
あなたが書いた何かがこのコードをここに掲載するのが最も良い問題であると思われる場合は、そうでなければ、解決策を決定することはほとんど不可能です。 – MadMurf
正確に。それは戻ってナビゲートしてはいけません。現在、残念ながらそれをやっています。 –