在对话框关闭不起作用的对话框内调用Ajax

时间:2013-03-21 22:46:22

标签: jquery jquery-ui jquery-ui-dialog

我对jQuery和Javascript相当新。我的问题是jQuery UI对话框。我有一个表格,我点击一行,它将进一步的细节填充到对话框中。对话框里面会有一个表格和一个表格。当用户输入详细信息并单击表单时,我会检查用户输入并再次将表单显示回对话框,但是当发生这种情况时,对话框关闭按钮不起作用。

有人可以建议如何处理这个问题吗?谢谢你的帮助。

$.ajax({
    type:"POST",
    dataType:"html",
    url:"form/add/"+estimateId,
    cache:false,
    //data:a,
    success:function(html){
        //alert(html);
        $(".projectMaintenance").html(html);
        $(".projectMaintenance").dialog({
            resizable:false,
            height:750,
            width:900,
            modal:true,
            buttons:{
                "Close":function(){
                    $(this).dialog('destroy');
    ....

这是我用来在对话框中提交表单的脚本。

var a=$('form').serialize();

$.ajax({
    type:"POST",
    dataType:"html",
    url:"form/save",
    cache:false,
    data:a,
    success:function(html){
        alert(html);
        $(".projectMaintenance").html(html);
.......

1 个答案:

答案 0 :(得分:1)

您只需在用户执行ajax请求时选择关闭选项,以保持更加可读和友好,创建一个trySend()函数

$.ajax({
        type:"POST",
        dataType:"html",
        url:"form/add/"+estimateId,
        cache:false,
        //data:a,
        success:function(html){
            //handle if everything it's ok and should show the dialog....
            $(".projectMaintenance").html(html);
            $(".projectMaintenance").dialog({
                resizable:false,
                height:750,
                width:900,
                modal:true,
                buttons:{

                    "Close":function(){


                        $(this).dialog('destroy');


                        buttons: {
                            "Close": function () {
                                $(this).dialog('close');
                                trySend();
                            }
                        }

.............

和trySend函数

        function trySend(){
            var a=$('form').serialize();
            $.ajax({
                type:"POST",
                dataType:"html",
                url:"form/save",
                cache:false,
                data:a,
                success:function(html){
                    alert(html);

                    $(".projectMaintenance").html(html);
                });
        }