Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery plugins jQuery:如果textarea发生更改,则发出警报_Jquery Plugins_Jquery - Fatal编程技术网

Jquery plugins jQuery:如果textarea发生更改,则发出警报

Jquery plugins jQuery:如果textarea发生更改,则发出警报,jquery-plugins,jquery,Jquery Plugins,Jquery,您能推荐一些轻量级jQuery插件来检测选择器指定的字段是否已更改吗 例如,像这样,当我想在后期编辑期间重新加载页面时,显示确认对话框。无需插件: $('selector').change( function() { alert( 'I've changed!'); } ); 启用SO的一个不同,它是在执行操作之前检查一个框是否为空或其中是否包含默认文本。它不是“在更改时”触发的。这是一个太基本/特定的功能,不可能有自己的插件 您只需存储一个布尔值,该值在任何元素发生更改时设置为true: v

您能推荐一些轻量级jQuery插件来检测选择器指定的字段是否已更改吗


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

无需插件:

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

启用SO的一个不同,它是在执行操作之前检查一个框是否为空或其中是否包含默认文本。它不是“在更改时”触发的。

这是一个太基本/特定的功能,不可能有自己的插件

您只需存储一个布尔值,该值在任何元素发生更改时设置为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
不正确。有关其用法的更多详细信息,请参阅。

实际上,它可能比其他答案中所述的要复杂一些,因为提交表单也会引发事件

现在情况改变了:有一个非常有用的jquery插件,它可以满足您的要求:


你可以看到它是如何与他们合作的。

我认为这不是他所指的。只有当您在“提问”或“您的答案”框中键入内容并尝试离开或刷新页面时,确认对话框才会弹出。这是在没有任何AJAX请求的情况下完成的,可能只是检查这些字段是否为非空。