onbeforeunload — привязка к выборочным событиям

Я работаю над корпоративным приложением, где формы генерируются динамически, и у нас нет контроля над кодом. Большинство элементов управления в форме имеют следующий код, связанный с ними

<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">

Мы хотели бы представить диалоговое окно отмены ok, когда пользователь пытается перейти на какую-либо другую страницу, используя ссылку в верхнем или нижнем колонтитуле.

Я использовал следующий код для привязки события 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.';
});
 }

Но проблема в том, что это диалоговое окно появляется каждый раз, когда пользователь изменяет значение любого поля в форме (я полагаю, что это связано с присутствием кода SWESubmitForm для события onchange).

Я хотел бы, чтобы диалог onbeforeunload появлялся, если пользователь щелкает любую другую ссылку вне формы, или, другими словами, привязывал onbeforeunload к выборочным событиям (включая закрытие окна) на странице.

Пожалуйста, помогите

5
задан Achilles 6 February 2017 в 16:38
поделиться