当我点击mvc页面中的下拉列表然后按键盘上的退格键时,该页面将导航回来。如何防止页面导航?
function prevent() {
$(document).unbind('keydown').bind('keydown', function (event) {
var doPrevent = false;
if (event.keyCode === 8) {
var d = event.srcElement || event.target;
if ((d.tagName.toUpperCase() === 'INPUT' &&
(
d.type.toUpperCase() === 'TEXT' ||
d.type.toUpperCase() === 'EMAIL' ||
d.type.toUpperCase() === 'DATE')
) ||
d.tagName.toUpperCase() === 'TEXTAREA') {
doPrevent = d.readOnly || d.disabled;
}
else {
doPrevent = true;
}
}
if (doPrevent) {
event.preventDefault();
}
});
}
答案 0 :(得分:0)
在所有现代浏览器中单击退格键是"返回"的快捷方式。你无法覆盖它。
如果网页可以阻止Backspace
,Ctrl+W
,Alt+F4
的默认行为,您将不会感到高兴。
您可能希望使用事件委派,而不是检查event.target
:
$(document).on('keydown', 'input', function (event) {
if (event.keyCode === 8 &&
['TEXT', 'EMAIL', 'DATE'].indexOf(this.type.toUpperCase()) > -1) {
event.preventDefault();
}
});
一些重要的注释:
bind
是一种弃用的方法。使用.on()