【发布时间】:2010-10-29 20:01:14
【问题描述】:
我想要实现的是警告用户未保存的更改,如果他/她试图关闭页面或导航离开它而不先保存。
我已经设法让OnBeforeUnload() 对话框弹出...但是如果用户没有修改任何字段值,我根本不希望它显示。为此,我使用了这个名为 is_modified 的隐藏输入字段,它以默认值 false 开头,当任何字段为编辑。
我尝试将 change 事件绑定到此 is_modified 字段以尝试检测值更改...然后才激活 OnBeforeUnload。
$( '#is_modified' ).change( function() {
if( $( '#is_modified' ).val() == 'true' )
window.onbeforeunload = function() { return "You have unsaved changes."; }
});
但据我所知,change() 事件仅在这 3 个步骤之后才起作用 - 字段接收焦点,更改值并且字段失去焦点。在隐藏输入字段的情况下,我不确定这个接收和失去焦点部分是如何工作的!因此,onbeforeunload 函数永远不会被激活。
谁能建议一种方法来维护 is_modified 的触发器?
谢谢。
【问题讨论】:
标签: javascript dialog conditional triggers onbeforeunload