关闭表单提交的Jquery对话框

时间:2010-07-19 18:16:16

标签: javascript jquery

$('#srch').click(function(e){
    if ($("#form").validationEngine({returnIsValid:true})) {
          $("#loader").dialog('open');
        $.ajax({
            type: "GET",
            url: "/cdr/abc.php",
            cache: false,
            data: $("#srch").serialize(),
            timeout: 5000,
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                //ajaxSubmitError(XMLHttpRequest, textStatus, errorThrown);
            },
            success: function (data) {
                $('#submit-dialog').dialog('close');
            }
            }); 
            e.preventDefault();
    }


});

在上面的函数中我无法导航到动作(php)页面。对话框无限运行,如何在表格提交时关闭对话框

3 个答案:

答案 0 :(得分:0)

在我的模型窗口中,我使用带有MVC的AJAX表单,但无论采用何种技术,解决方案都应该有效。

<% using (Ajax.BeginForm("Index", "Message", new AjaxOptions { OnBegin = "SubmitMessage", OnSuccess = "CloseDialog" }, new { @id = "Index-Message" })) { %>
    <input type="submit" value="Send" class="Button" />
<% } %>

然后我将这个小函数放在调用窗口中。

    function CloseDialog() {
        $("#Modal").dialog("close");
    }

答案 1 :(得分:0)

您也可以在错误事件中关闭对话框。

error: function (XMLHttpRequest, textStatus, errorThrown) {
    $('#submit-dialog').dialog('close');
},

答案 2 :(得分:0)

你实际上需要这样的东西:

$('#srch').click(function(e){
        var $dialogContent = $("#form");                

        $dialogContent.dialog({
            modal: true,
            title: "Test",
            close: function() {
               $dialogContent.dialog("destroy");
               $dialogContent.hide();
            },
            buttons: {
                save : function() {
                    $.ajax({
                        type: "GET",
                        url: "/cdr/abc.php",
                        cache: false,
                        data: $("#srch").serialize(),
                        timeout: 5000,
                        error: function (XMLHttpRequest, textStatus, errorThrown) { //ajaxSubmitError(XMLHttpRequest, textStatus, errorThrown); },
                        success: function (data) {                              
                            $dialogContent.dialog("close");
                        }
                    });
                },
                cancel : function() {
                    $dialogContent.dialog("close");
              }
           }
        }).show();
    e.preventDefault(); 
}

您可以在保存功能中进行任何验证。