我想要实现的是警告用户未保存的更改,如果他/她试图关闭页面或导航离开它而不先保存。
我设法让OnBeforeUnload()
对话框弹出......但如果用户没有修改任何字段值,我根本不希望它显示。为此,我使用了这个名为is_modified的隐藏输入字段,它以默认值false开头,并在编辑任何字段时翻转为true 。
我尝试将更改事件绑定到此 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 的触发器?
谢谢。