2010-05-12 19 views
0

我正在使用简单的asp.net网页上有几个字段,当用户点击提交按钮,我异步调用并发布数据。为什么我的表单正在做回发,当我异步调用?

但是,我的整个页面发布回来,我甚至没有看到我试图显示的消息,如果我的数据得到张贴成功。

这是我的页面。


 <div id="status"></div> 
    <asp:Label runat="server" ID='lbl' >Name:</asp:Label> 
       <asp:TextBox ID="txtName" runat='server'></asp:TextBox>    

    <asp:Label runat="server" ID='Label4' >Host Name:</asp:Label> 
       <asp:TextBox ID="txtHost" runat='server'></asp:TextBox> 

    <asp:Label runat="server" ID='Label2' >Start Date:</asp:Label> 
       <asp:TextBox ID="txtStartDate" runat='server' ></asp:TextBox> 

    <asp:Label runat="server" ID='Label6' >End Date:</asp:Label> 
       <asp:TextBox ID="txtEndDate" runat='server' ></asp:TextBox>   


      <ul> 
      <li> 
      <button id="btnCancel" name="btnCancel" type="button"> 
       Cancel</button></li> 
      <li> 
      <button id="btnReset" name="btnReset" type="reset"> 
       Reset</button></li> 
      <li> 
      <button id="btnSubmit" name="btnSubmit" type="submit"> 
       Submit</button></li> 
     </ul> 
    </p> 
    </form> 
</div> 

//Store new Contract Request Methods 
    function processCompletedContactStore(response) { 

     if (!response) { 
      showErrorMsg('No Contacts Returned'); 
      return; 
     } 
     else { 
      if (response.Message == 'update') { 
       $("#status").fadeTo(500, 1, function() { $(this).html("Updated successfully!").fadeTo(500, 150); }) 
      } 
     } 
    } 


function SavePage() { 

    var request = buildNewContactRequest(); 

    ContactServiceProxy.invoke({ serviceMethod: "PostNewContact", 
     data: { request: request }, 
     callback: function(response) {  
      processCompletedContactStore(response); 
     }, 
     error: function(xhr, errorMsg, thrown) { 
      postErrorAndUnBlockUI(xhr, errorMsg, thrown); 
     } 
    }); 
    return false; 
} 

$(document).ready(function() 
{ 
    $("#btnSubmit").click(function() {  
      SavePage(); 
     }); 
}); 

回答

2

你结合的函数调用提交按钮?如果是这样,你需要在函数结束时返回false,这将停止标准表单发布。

$("#btnSubmit").click(function() {  
      return SavePage(); 
     }); 
+0

请看我刚刚更新了我的代码: – 2010-05-12 19:28:00

+0

@Abu Hamzah,虽然您从函数SavePage返回false,但您有一个内联函数绑定到不返回任何内容的click事件,请尝试修改我添加到的代码段我的回答是 – Pharabus 2010-05-12 19:35:45

2

好了,点击你正在做的:

$("#btnSubmit").click(function() {  
     SavePage(); 
    }); 

你在哪里返回false?无处。 SavePage()返回false,但从不会返回实际的点击功能。所以,你可以做两种:

$("#btnSubmit").click(function() {  
     return SavePage(); 
    }); 

在这种情况下,SavePage()将返回false,并且返回值将被退回......

或者从SavePage拿出return false;()和做:

$("#btnSubmit").click(function() {  
     SavePage(); 
     return false; 
    }); 
+0

你输入,因为我正在更新我的答案+1的地方:) – Pharabus 2010-05-12 19:37:03

+0

@Prabrabus。是的,我刚刚意识到我说过“你在哪里回来假?”。我甚至从来没有说过,当你做到的时候,你必须首先回报假。 – 2010-05-12 19:39:38

+0

谢谢@Nelson,@Prabrabus – 2010-05-12 21:01:28

相关问题