2010-07-19 62 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(); 
} 

任何驗證就可以保存函數內完成。