跟踪模式内HTML表单的更改

时间:2014-05-01 18:15:43

标签: javascript jquery html html-form

我的应用程序中有一个模态对话框,其中包含大约10个输入(即文本,日期,数字和选择输入)。我需要知道用户是否更改了任何窗口小部件的值,这样当他们点击取消按钮时,我可以提示他们是否愿意在关闭对话窗口之前保存更改。

我可以用两种方式做到这一点,这可能不是最聪明的方式:

1)在我的javaScript中设置一个全局变量并跟踪" onChange"事件

2)比较每个小部件或输入之前和之后的值,以确定它们是否有任何改变。

我想知道是否还有其他任何我不了解的选项,因为我不熟悉jQuery和javaScript。

如果这是一个重复的问题我道歉,我搜索并发现了另一个类似的问题,但不是我所追求的。 Best way to track onchange as-you-type in input type="text"?

由于

1 个答案:

答案 0 :(得分:2)

使用脏标志:

var dirty = false;
$('#myModalForm input').change(function() {
  dirty = true;
});
$('#myModalForm #cancelButton').click(function() {
  if (dirty) {
    //confirm
  }
  // exit modal
});
$('#myModalForm #save').click(function() {
  // save
  dirty = false;
});