当我按退格键时弹出窗口消失了

时间:2015-12-07 05:08:50

标签: javascript

我在MVC中有一个弹出页面,当我从控制器调用一个方法时该页面即将到来,但是当我按下退格键时弹出窗口显示在屏幕上,它就会消失。怎么办?

function MoveFocus()
{
    document.getElementById("Button1").focus();
    $(document).on("keydown", function (event) {
    if (event.keyCode === 8) {
    event.preventDefault();
     }
  });       
}

我在视图中的每个输入字段中调用此MoveFocus Funstion。

2 个答案:

答案 0 :(得分:1)

我认为停止传播是你所寻求的......

" event.stopPropagation()方法停止将事件冒泡到父元素,从而阻止执行任何父事件处理程序。"
Source

if (event.keyCode === 8) {
     event.stopPropagation()
}

答案 1 :(得分:1)

这将执行Job以防止退格默认事件......

$(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();
        }
    });