我正在一个向用户显示表格的网站上工作。表格的一栏中包含用户可以在其中输入注释的输入框。在每个输入框的下面都有一个保存按钮,用于将输入的注释保存到数据库中。该网站的一项要求是,它每30秒自动刷新一次表格内容。

现在的问题是,当用户在其中一个输入框中键入便笺时,有时可能会在用户按下保存按钮之前(甚至在他甚至没有完成便笺输入之前)刷新表格。

作为解决方案,我尝试检查当前是否有任何输入框具有焦点,如果是这种情况,将出现一个确认框,并询问用户是否要刷新表,或者首先要完成输入的用户框。这是我的解决方案的代码:

setInterval(function ()
{
    var canRefresh = true;
    var noteInputs = document.querySelectorAll('[id^="note_"]');

    for (var i = 0; i < noteInputs.length; i++) {
        if ($(noteInputs[i]).is(':focus')) {
            canRefresh = false;
            break;
        }
    }

    if (canRefresh || confirm('Do you want to refresh the table?')) {
        //Refresh the table
    }

}, 30000)


不幸的是,这种解决方案存在一个问题。
尽管它确实可以正常工作,但我意识到很容易发生这种情况,即用户在键入便笺时按下空格键几乎立即意外关闭了确认框。

因此,有什么方法可以禁用确认框的空格键,还是有更好的解决方案?

最佳答案

setInterval()返回一个标识符,以后可以将其用作clearInterval()的参数。

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval

关于javascript - 防止空格键关闭确认框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58731507/

10-10 22:01