我的页面上有输入字段,我检测用户何时键入内容以启用“保存”按钮。我还启用了一个快捷键 Ctrl + S 来让用户保存。无论何时保存数据,都会禁用“保存”按钮。
然而,我有一个两难的境地。如果用户更改输入字段中的文本,执行 Ctrl + S 然后使用鼠标移动到另一个输入字段,则会触发“更改”事件用户更改的输入字段,这又会导致“保存”按钮再次启用。不应启用“保存”按钮,因为在执行 Ctrl + S 后未进行任何更改。它看起来是change
事件不仅会在文本更改时触发,而且还会在焦点移动到另一个字段时触发。
$("input.SaveMe").live('keypress change', function ()
{
// Code goes here to enable Save button
});
如何在保存后阻止更改事件发生。我想过使用某种旗帜,但我无法弄清楚如何。
答案 0 :(得分: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
});
答案 1 :(得分:-1)
删除“更改”检测可以解决问题,但现在可以防止用户将文本粘贴到字段中并将粘贴检测为更改。要解决这个问题:
$(document).bind('paste', function (e)
{
// Add code to update flag to indicate data changes and enable the Save button.
});