无法关闭模态对话框

时间:2011-08-11 13:00:53

标签: jquery ruby-on-rails-3 jquery-ui modal-dialog

问题:无法关闭模式对话框

我有以下代码,它适用于我,对话框已打开。

$("#invitation-form").dialog({
    autoOpen: true,
    height: 300,
    width: 600,
    modal: true,
    title: 'Send Invitation',

    open: function() {
        $("#invitation-form").html("<%= escape_javascript(render('invitation_form.html')) %>")
    }
});

在邀请表单中,用户点击“发送”按钮后, 它将在控制器中触发和运行,它是和ajax调用,因为我设置:remote =&gt;真

我尝试执行以下操作

$("#invitation-form").dialog("close")

对话框不会关闭。

我把并发出警告消息来测试它,它通过代码运行,我可以看到警报消息。

任何人都可以帮助我,我该如何关闭对话框?

由于

3 个答案:

答案 0 :(得分:0)

您应该尝试将对话框设置为autoOpen

$("#invitation-form").dialog({
    autoOpen: false,
    height: 300,
    width: 600,
    modal: true,
    title: 'Send Invitation',

    open: function() {
        $("#invitation-form").html("<%= escape_javascript(render('invitation_form.html')) %>")
    }
});

然后,您可以根据需要在页面加载时调用open,并在需要时随时调用close

$("#invitation-form").dialog("open");
$("#invitation-form").dialog("close");

答案 1 :(得分:0)

您是否尝试过将ajax功能置于关闭状态?

$( "#invitation-form" ).dialog({
   close: function() { Ajax stuff here }
});

否则,请尝试设置“发送”按钮:

//getter
var buttons = $( ".selector" ).dialog( "option", "buttons" );
//setter
$( ".selector" ).dialog( "option", "buttons", { "Ok": function() { $(this).dialog("close"); } } );

答案 2 :(得分:0)

同时检查加载文件中未包含的jquery-ui和jquery.js。 如果加载两次,它将在对话框关闭方法中停止工作。