2012-02-12 41 views
1

我的工作,我已经使用JQuery用户界面对话的asp.net页面上。这个对话框有一个提交按钮。当我点击提交按钮对话框关闭。我想调用一个Web方法。如果方法返回ture,那么我想关闭它,否则我想保持它打开并显示错误消息。asp.net提交按钮关闭jQuery的阿贾克斯

[编辑]

<script> 

     jQuery(function() { 
      var dlg = jQuery("#dialog").dialog({ 
       draggable: true, 
       resizable: true, 
       show: 'Transfer', 
       hide: 'Transfer', 
       width: 320, 
       autoOpen: false, 
       minHeight: 10, 
       minwidth: 10, 
       beforeClose: function() { 
        $.ajax({ 
         url: "Default.aspx/GetResult", 
         success: function (response) { 
          if (response == true) { 
           ("#dialog").close() 
          } 
          else { 
           alert('asdasdds'); 
          } 
         } 
        }); 


        return false; //this will stop dialog box to close 
       } 
      }); 
      dlg.parent().appendTo(jQuery("form:first")); 
     }); 

    </script> 

<div id="Result"> 
     Click here for the time.</div> 
    <div id="dialog" style="text-align: left; display: none;"> 
     <asp:Button ID="btnButton" runat="server" Text="Button" OnClick="btnButton_Click" /> 
    </div> 

如何做到这一点。请建议。

问候, 阿西夫·哈米德

回答

2

可以使用ajax调用的WebMethod,然后有条件地基于响应采取行动。让你的w​​ebmethod只返回true/false,然后你可以在客户端检查这个值。

执行上提交按钮,点击此代码,不关闭对话框。让成功经理决定是否关闭它或不。

$.ajax({ 
    url: "urlOfTheService.asmx/methodName", 
    success: function(response){ 
     if(response == true){ 
      //Code to close the dialog 
     } 
     else{ 
      //Show the error message 
     } 
    } 
}); 

ajax()参考:http://api.jquery.com/jQuery.ajax/

更新:对话框

使用open事件附上提交处理,形成并执行上面的代码。

 jQuery(function() { 
      var dlg = jQuery("#dialog").dialog({ 
       draggable: true, 
       resizable: true, 
       show: 'Transfer', 
       hide: 'Transfer', 
       width: 320, 
       autoOpen: false, 
       minHeight: 10, 
       minwidth: 10, 
       open: function(){ 
        $(this).find('form') 
        .unbind('submit') 
        .submit(function(){ 
          var $form = $(this); 
          $.ajax({ 
          url: "urlOfTheService.asmx/methodName", 
          success: function(response){ 
           if(response == true){ 
            //Submit the form 
            $form.unbind('submit')[0].submit(); 
           } 
           else{ 
            //Show the error message 
           } 
          } 
         }); 
         return false; 
        }); 
       } 
      }); 
      dlg.parent().appendTo(jQuery("form:first")); 
     }); 
+0

感谢您的快速反应。如何与jQuery UI的对话框使用此代码? – DotnetSparrow 2012-02-12 17:53:36

+0

当您点击提交或关闭按钮关闭对话框时,您必须基本执行此代码。代码关闭对话框在哪里? – ShankarSangoli 2012-02-12 17:55:32

+0

请更新的问题。我已经添加了代码 – DotnetSparrow 2012-02-12 18:06:17