私はフォームが動的に生成されるエンタープライズ アプリケーションに取り組んでおり、コードを制御することはできません。フォーム内のほとんどのコントロールには、次のコードが関連付けられています
<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 イベントをバインドし、OK キャンセル ダイアログをユーザーに提示するために、次のコードに慣れていました。
//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 ダイアログが表示されるようにしたいと考えています。
助けてください