我正在一个向用户显示表格的网站上工作。表格的一栏中包含用户可以在其中输入注释的输入框。在每个输入框的下面都有一个保存按钮,用于将输入的注释保存到数据库中。该网站的一项要求是,它每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/