检测数据表中未保存的数据并通过导航上的确认消息进行提示

时间:2014-04-09 08:23:28

标签: javascript jsf primefaces

我正在使用primefaces数据表。如果我在表格中做了任何更改而未保存更改,如果我尝试离开屏幕,我们需要显示警告消息。

2 个答案:

答案 0 :(得分:1)

@Daniel的好主意,但我不喜欢他为每次输入更改设置的昂贵绑定。如果你的桌子有下拉菜单,复选框或......,该怎么办?你也必须在它们上绑定一个改变事件。

仅通过onchange属性在datatable上绑定widgetVar个活动。 设置widgetVar到您的表格,例如myTableVar。 然后使用:

<script>
var dirtyFlag = false;

$(window).bind("beforeunload", function(event) {
    if(dirtyFlag === true) 
        return "You have unsaved changes";
});
myTableVar.tbody.context.onchange = function() {dirtyFlag = true;}
</script>

答案 1 :(得分:0)

这是一个快速的脏解决方案,只需将其放入您的js文件(您可以在浏览器控制台的Primefaces Datatable Showcase上在线测试)

var dirtyFlag = false;

$(window).bind("beforeunload",function(event) {
    if(dirtyFlag === true) return "You have unsaved changes";
});

$(document).on('change','input', function(){dirtyFlag = true});

点击保存按钮后,不要忘记将dirtyFlag设置为false


关于更改事件的选择器:您可以对其进行微调,以包含某种形式下的其他输入等&#39;