我正在开发一个动态生成的企业应用程序,我们无法控制代码。表单中的大多数控件都具有与其关联的以下代码
<select name="s_10_1_1_0" onchange = 'SWESubmitForm(document.SWEForm10_0,s_5,"","1-E0RHB7")' id='s_10_1_1_0' tabindex=1997 >
<input type="text" name='s_10_1_11_0' value='' onchange = 'SWESubmitForm(document.SWEForm10_0,s_7,"","1-E0RHB7")' id='s_10_1_11_0' tabindex=1997 maxlength="30">
当用户尝试使用页眉或页脚中的链接导航到其他页面时,我们希望显示一个确定取消对话框。
我习惯于使用以下代码来绑定 onbeforeunload 事件并向用户显示一个确定的取消对话框。
//this identifies the unique page name
var viewName = $('input[name="SWEView"]').val();
// if I am on desired page bind the event so that now dialog is presented to user
if(viewName == "XRX eCustomer Create Service Request View"){
$(window).bind('beforeunload', function(){
return 'Your Inquiry has not been submitted yet.';
});
}
但问题是每次用户更改表单中任何字段的值时都会出现此对话框(我相信这是由于 onchange 事件存在 SWESubmitForm 代码)。
如果用户单击表单外的任何其他链接,或者换句话说,将 onbeforeunload 与页面上的选择性事件(包括关闭窗口)联系起来,我想打开 onbeforeunload 对话框。
请帮忙