在返回 false 之前禁止在有 consure() 框的情况下进行键控;



我有一个庞大的Javascript文件,可以捕获应用程序各个屏幕上的各种键控。我总是使用return false();来防止发生默认的键控操作,这很好用。

但是,在此特定键下,return false;之前有一个confirm()框。如果我按 C,就会出现confirm()对话。如果我把它移开,在它下面,c已经写入文本框。

如何成功抑制keydown?这只有在 Chrome 中工作时才需要。

document.onkeydown = keyDown;
function keyDown()
{
    switch(window.event.keyCode)
    {
        case(67):
            if(confirm('You have unsaved data! Press OK to Save or Cancel to Discard')) {
                alert('Do something...');
            }
            else {
                return false;
            }
            window.location = '/invoice-12345';
            return false;
        break;
    }
}
您可以使用

setTimeout延迟确认。

document.onkeydown = keyDown;
function keyDown()
{
    switch(window.event.keyCode)
    {
        case(67):
            setTimeout(function() {
                if(confirm('You have unsaved data! Press OK to Save or Cancel to Discard')) {
                    alert('Do something...');
                }
                else {
                    return false;
                }
                window.location = '/invoice-12345';
            }, 0);
            return false;
        break;
    }
}

js小提琴

相关内容

  • 没有找到相关文章

最新更新