jQuery:如果文本区域更改则发出警报

问题描述 投票:0回答:3
你能推荐一些轻量级的 jQuery 插件来检测选择器指定的字段是否已更改吗?

例如就像 SO 上的这个一样,当我想在后期编辑期间重新加载页面时显示确认对话框。

jquery-plugins jquery
3个回答
3
投票
这是一个太基本/具体的功能,不可能有自己的插件。

您需要做的就是存储一个布尔值,如果任何元素发生更改,该值将设置为 true:

var changed = false; $(document).ready(function() { $('.watch-for-changes').change(function() { change(); }); window.onbeforeunload = function() { if (hasChanged()) { return "There are unsaved changes on the page."; } }; } function change() { changed = true; } // use this to programmatically change an input field function changeValue(elField, value) { $(elField).val(value); change(); } function hasChanged() { return changed; }

编辑: 以前使用 onbeforeunload

 是不正确的。有关其用法的更多详细信息,请参阅
此页面


1
投票
无需插件:

$('selector').change( function() { alert( 'I've changed!'); } );

SO上的那个不一样,它在你做一个动作之前检查一个框是空的还是里面有默认文本。它不是在“变化时”触发的。


0
投票
实际上,它可能比其他答案中所述的稍微复杂一些,在其他答案中仅提交表单也会触发事件。

现在情况发生了变化:

IS 一个非常有用的 jQuery 插件,它可以满足您的要求:你确定吗.

您可以通过他们的

演示页面看到它是如何工作的。

© www.soinside.com 2019 - 2024. All rights reserved.