【问题标题】:Track of changes in an HTML form inside of a modal在模态框内跟踪 HTML 表单的变化
【发布时间】:2014-05-01 18:15:43
【问题描述】:

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

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

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

2) 比较每个小部件或输入之前和之后的值,以确定它们是否发生了变化。

我想知道是否还有其他我不知道的选项,因为我是 jQuery 和 javaScript 的新手。

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

谢谢

【问题讨论】:

  • @MichaelPlotke 他在他的问题中提到了这一点。
  • @Michael_Plotke 感谢您的回复。 SomeKittens_Ux2666 在下面回答了我的问题。

标签: javascript jquery html forms


【解决方案1】:

使用脏标志:

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;
});

【讨论】:

  • @SomeKittens_Ux2666 感谢您的示例。这比我正在做的要好得多。它适用于除“选择/选项”字段之外的所有表单字段。所以我只添加了以下内容: $('#myModalForm select').change(function() {dirty = true; });
  • // 要添加的另一件事是,当用户不保存时,将变量设置为 false,以便用户可以再次打开对话框 if (dirty) { //confirm if (confirm("Do not保存?”))脏=假; } // 退出模态
猜你喜欢
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 2020-12-23
  • 1970-01-01
相关资源
最近更新 更多