このページに何かが保存されていないことをユーザーに通知するために、ブートストラップモーダルで jquery.dirtyforms を使用しました。これはアンカーリンクで完全に機能しましたが、div
実際には他のページへのリンクとして機能しているページがあります。これdiv
にdata-action
は他のページの URL を含む属性があり、クリックするとナビゲートするdata-action
値を設定しています。window.location.href
クリックするdiv
と、Bootstrap Modal ではなく、ブラウザのデフォルトのポップアップに確認メッセージが表示されました。という名前の div に一意のクラスを指定しましたtabDiv
。jquery.dirtyforms.js に div のサポートを追加しようとしましたが、これは機能しませんでした:
<div class="sf-active div_Header tabDiv" id="div_Header" data-action="@Url.Action("ViewContract", "Contract", new { Id = Request.QueryString["Id"] })">
<span>First</span>
<i class="i_Header"></i>
ClickMe
<div class="ContraHeader glyphicon"></div>
</div>
$(".div_Header").click(function(evt) {
evt.stopImmediatePropagation();
var url = $(this).attr('data-action');
if (url !== undefined)
window.location.href = url;
});
動作しない Jquery.DirtyForms.Js で変更しようとしたこと
var events = {
bind: function (window, document, data) {
$(window).bind('beforeunload', data, events.onBeforeUnload);
$(document)
.on('click', 'a:not([target="_blank"])', data, events.onAnchorClick)
.on('submit', 'form', data, events.onSubmit)
.on('click', 'div.tabDiv', data, events.onDivCLick);
}, onDivCLick: function(ev){
bindFn(ev);
},
div
クリックでも動作するようにしたい。現在は機能していますが、ブラウザのデフォルトのポップアップにメッセージが表示されます。このクリックでも同じ Bootstrap Modal を表示したい。