0

我的页面上有输入字段,并且我检测到用户何时键入内容以启用“保存”按钮。我还启用了快捷方式Ctrl+S让用户保存。每当保存数据时,保存按钮都会被禁用。

然而我有一个两难的选择。如果用户更改输入字段中的文本,执行Ctrl+S然后使用鼠标移动到另一个输入字段,则为用户更改的输入字段触发“更改”事件,这反过来会导致保存按钮再次启用。不应启用 Save 按钮,因为在执行Ctrl+后未发生任何更改S。看起来change事件不仅会在文本更改时触发,而且还会在焦点移动到另一个字段时触发。

$("input.SaveMe").live('keypress change', function ()
{
    // Code goes here to enable Save button
});

保存后如何防止更改事件发生。我想使用某种标志,但我不知道如何。

4

2 回答 2

2

当该特定输入不在焦点时,您可以通过以下方式忽略该事件。

$("input.SaveMe").live('keypress change', function() {
    if (!$(document.activeElement).id == 'id_of_input') return; //if (!$(document.activeElement).hasClass('SaveMe')) return;
    // Code goes here to enable Save button
});
于 2012-07-19T12:40:41.027 回答
-1

删除“更改”检测可以解决问题,但这会阻止用户将文本粘贴到字段中并将粘贴检测为更改。要修复该使用:

$(document).bind('paste', function (e)
{
  // Add code to update flag to indicate data changes and enable the Save button.
});
于 2012-07-19T13:37:13.097 回答