关于ajax成功的关闭模态形式

时间:2013-07-30 13:04:19

标签: asp.net-mvc-4 jquery-ui-dialog ajax.beginform

我有一个包含ajax.beginform.

的模态对话框

在视图上我有一个所选用户的角色列表,当我点击add时,该对话框是使用ajax创建的

视图:

<div id="popupAgregarRolModal" title="@Res_String.AsaignRol">
    <!-- Client Partial, empty for now -->
</div>


<script>

    $(document).ready(function () {

        $(".AddRolButton").on("click", function (event) {
            event.preventDefault();
            $.ajax({
                url: "Permiso/_GestionarRol?idSelectedUser=" + $("#AdmPerGridBUsquedaUsuarioSelectedRow").val(),
                type: "GET",
            })
            .done(function (result) {
                $("#popupAgregarRolModal").html(result).dialog({ modal: true, height: 'auto', width: 'auto', resizable: false });
            });
        });
    });

    function closeDialogNuevoRol(Result) {
        $("#popupAgregarRolModal").dialog('destroy');
    }

</script>

,该对话框包含ajax.beginform,如:

 using (Ajax.BeginForm("SetPermiso", "Permiso", new AjaxOptions
            {
                UpdateTargetId = "ABMPermisos",
                InsertionMode = InsertionMode.Replace,
                HttpMethod = "POST",
                OnSuccess = "closeDialogNuevoRol"

            }, new { @id = "AddRolForm" }
                                  )
                   )
            { 
.
.
.

我的想法是,在我向用户添加一个新的rol后,ajax目标上传了视图中的角色列表,如果所有的comprobation和插入逻辑都存在,则使用redirecttoaction在我的控制器上完成,然后我想关闭拨号,但我只得到

  

未捕获错误:在初始化之前无法调用对话框上的方法;   试图调用方法'destroy'

1 个答案:

答案 0 :(得分:0)

要关闭jQuery模式对话框,可以使用:

$("#popupAgregarRolModal").dialog("close");

希望这有帮助。

编辑:尝试像这样初始化模态而不是按钮的click事件:

$(document).ready(function () {
    $("#popupAgregarRolModal").dialog({ autoOpen: false, modal: true, resizable: false, draggable: false });
});

然后,您可以为click事件设置单独的函数。

$(".AddRolButton").click(function () {
    //Do stuff
});

This post might help