你能推荐一些轻量级的jQuery插件来检测选择器指定的字段是否已更改?
E.g。像这样的SO,当我想在后期版本中重新加载页面时显示确认对话框。
答案 0 :(得分: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
之前的使用不正确。有关其用法的详细信息,请参阅this page。
答案 1 :(得分:1)
无需插件:
$('selector').change( function() { alert( 'I've changed!'); } );
SO上的那个是不同的,它是在你做一个动作之前检查一个框是否为空或者是否有默认文本。它不是“在变化中”触发的。
答案 2 :(得分:0)
Actualy,它可能比其他答案中的说法稍微复杂一点,只是提交表格也会引发事件。
现在情况发生了变化: IS 是一个真正有用的jquery插件,可以满足您的要求:are-you-sure。
您可以看到它与demo page的合作方式。