ajaxSubmit与SimpleModal结合使用不会触发成功委托

时间:2011-02-10 13:57:06

标签: jquery simplemodal jquery-forms-plugin

使用以下代码我试图在ajaxSubmit之后执行一些操作,但是成功委托永远不会被触发。 ajaxSubmit代码到达asp.net控制器,该控制器使用JSON结果成功处理请求。模型表单包含一个执行AjaxSubmitAndClose的按钮。

function ShowModal(rendercontainerid, modalcontainerid, url) {
        if (url == '')
            return;
        $.get(url, function(data) {
            $(rendercontainerid).html(data);
            $(rendercontainerid).modal({
                close: false,
                containerId: modalcontainerid
            });
        });
    }

    function AjaxSubmitAndClose(formid) {
        var options = { 
                        beforeSubmit:  showRequest,
                        success: showResponse,
                        dataType: 'json'
                        };


        $(form).ajaxSubmit(options);
    }

    function showRequest(formData, jqForm, options) 
    { 
        $('#formSub').html('We really appreciate your feedback!');
        var queryString = $.param(formData); 
        alert('About to submit: \n\n' + queryString); 
        return true; 
    }

    function showResponse(responseText, statusText) 
    {
        alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
            '\n\nThe output div should have already been updated with the responseText.'); 
    }

2 个答案:

答案 0 :(得分:0)

如果您使用的是ASP.NET,我相信您需要为模式使用appendTo:'form'选项:

$(rendercontainerid).modal({
    appendTo: 'form',
    close: false,
    containerId: modalcontainerid,
    // snip
});

答案 1 :(得分:0)

在调查这种奇怪的行为后,我找到了一个开放的bug 然后我在公开场合做了一个镜头,我从选项中删除了dataType 对象,令人惊讶的是一切都在恢复。