我正在使用DirtyForms并且插件的基本功能正在运行。当用户试图离开一个页面时,浏览器会抛出一个确认对话框。
我们使用 jQuery UI 的对话框进行模态确认,我试图让它与 DirtyForms 一起使用,它有一个直接引用 jQuery UI 对话框的示例。我直接从他们的页面使用示例来设置自定义对话框,但它没有使用 jQuery 对话框,它仍然使用浏览器的本机对话框:
$.DirtyForms.dialog = {
selector: '#unsavedChanges',
fire: function(message, dlgTitle) {
$('#unsavedChanges').dialog({title: dlgTitle, width: 350, modal: true});
$('#unsavedChanges').html(message);
},
bind: function() {
$('#unsavedChanges').dialog('option', 'buttons',
[
{
text: "Stay Here",
click: function(e) {
$.DirtyForms.choiceContinue = false;
$(this).dialog('close');
}
},
{
text: "Leave This Page",
click: function(e) {
$.DirtyForms.choiceContinue = true;
$(this).dialog('close');
}
}
]
).bind('dialogclose', function(e) {
// Execute the choice after the modal dialog closes
$.DirtyForms.choiceCommit(e);
});
},
refire: function(content) {
return false;
},
stash: function() {
return false;
}
}
打开插件的调试后,我没有收到任何错误(或任何其他 JS 错误),但模式对话框没有触发,只有浏览器的原生对话框。其他在同一页面上实现的 jQuery UI 对话框工作。我不确定我可能在这里遗漏了什么。任何帮助或见解将不胜感激。