Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t获取自定义对话框以使用DirtyForms_Javascript_Jquery_Forms_Jquery Dirtyforms - Fatal编程技术网

Javascript Can';t获取自定义对话框以使用DirtyForms

Javascript Can';t获取自定义对话框以使用DirtyForms,javascript,jquery,forms,jquery-dirtyforms,Javascript,Jquery,Forms,Jquery Dirtyforms,我正在使用,插件的基本功能正在运行。当用户试图离开页面时,浏览器会抛出一个确认对话框 我们使用jQueryUI的对话框进行模式确认,我正试图将其用于DirtyForms,它有一个直接引用jQueryUI对话框的示例。我直接从他们的页面使用示例来设置自定义对话框,但它没有使用jQuery对话框,它仍然使用浏览器的本机对话框: $.DirtyForms.dialog = { selector: '#unsavedChanges', fire: function(message, dl

我正在使用,插件的基本功能正在运行。当用户试图离开页面时,浏览器会抛出一个确认对话框

我们使用jQueryUI的对话框进行模式确认,我正试图将其用于DirtyForms,它有一个直接引用jQueryUI对话框的示例。我直接从他们的页面使用示例来设置自定义对话框,但它没有使用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错误),但是模态对话框不会启动,只有浏览器的本机对话框。在同一页面上实现的其他jQueryUI对话框可以正常工作。我不确定我在这里遗漏了什么。任何帮助或见解都将不胜感激。

最可能的问题是,您的HTML标记中没有id为
未保存更改的
div
标记。因此,您应该添加HTML

<div id="unsavedChanges" style="display:none;" />

或JavaScript中的等效项

var $dlg = $('<div id="unsavedChanges" style="display:none;" />'); 
$('body').append($dlg);
var$dlg=$('');
$('body')。追加($dlg);
如果这不是问题所在,我建议您通过发布整个HTML文档或使用诸如的服务来编辑您的问题,以包括

注意:只有当用户单击页面中的超链接时,自定义对话框才起作用。当用户与浏览器的导航交互时,将显示浏览器的对话框(如果有)。这是因为无法用自定义对话框替代浏览器的默认导航行为

在2.x版中,现在可以添加超链接,因此,如果单击超链接可以导航到当前页面,则可以添加超链接以外的元素


如果你能解决这个问题,我们就会遇到同样的问题。