2010-07-19 61 views
1
$('#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)Page.and对话框将无限期运行,我应该如何关闭该对话框时,表单提交关闭对话框的Jquery表单提交

+0

你为什么要打开名为#loader的对话框并关闭对话框#提交对话框? – 2010-07-19 18:23:27

+0

是否有一个原因,你在与'.dialog('close')'不同的元素上调用'.dialog('open')'?尝试在'#loader'上调用它们。 – jasongetsdown 2010-07-19 18:25:45

回答

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"); 
    } 
0

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

error: function (XMLHttpRequest, textStatus, errorThrown) { 
    $('#submit-dialog').dialog('close'); 
}, 
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(); 
} 

任何验证就可以保存函数内完成。