我在表单中有许多输入,并且仅在编辑输入字段后才想打开警报弹出窗口。我该如何管理?

我之前所做的是,每当打开编辑页面时,我只是在检查长度,如果长度大于零,则会发出警报。

但是现在,仅当我按任意键并按返回按钮时,我才需要获得警报。有什么解决办法吗?

最佳答案

首次加载页面/文档时,请创建一个变量,以跟踪各种输入字段的当前状态,例如


  window.unsaved = false


当用户在您的任何输入字段上按下任意键时(使用事件侦听器进行检查,或者如果您使用的是jquery,则使用keydown事件进行检查),将unsaved更改为true。在onbeforeunload中,检查是否未保存== true,如果是,则显示警报。

如果使用jQuery,则可以执行以下操作:

$(document).ready(function(){
  // put this next variable in the global scope (window.) so you can
  // access it from unload

  window.unsaved == false;

  $('input').keydown(function(){
    window.unsaved == true;
  })
})

$( window ).unload(function() {
  if(window.unsaved == true){
    alert('You have unsaved work.');
  }
});

关于javascript - 如果在javascript中按下了后退按钮,如何显示警报消息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36403518/

10-09 01:16