jquery asp.net,停止回发

时间:2013-04-22 11:24:24

标签: javascript jquery asp.net javascript-events

我有一个文本框,我希望用户能够输入TextBox,当他们点击Enter时,我希望jQuery对web方法进行ajax调用。
问题是,当用户点击回车时,会调用该方法,但之后页面会因返回而刷新。我尝试过使用return false但没有结果。

以下是代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=7" />  
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
<script language="javascript">
   function serviceCall(getText) {          
      $.ajax({
       type: "POST",
       url: 'ActiveDirectoryAutoFillWebService.asmx/TestMethod',
       data: "{'getId':'+ getText +'}",
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function (msg) {
       $("#divResult").html(msg.d);
       },
       error: function (e) {
       $("#divResult").html("WebSerivce unreachable " + e.name + " " + e.message);
     }
   });  
  //  return false;       This does not work      
}
function searchKeyPress(e) {
   if (typeof e == 'undefined' && window.event) { e = window.event; }
       if (e.keyCode == 13) {              
           serviceCall(e)   
           //  return false;       This does not work         
       }          
 }
 </script>
</head>
<body>

<form id="form1" runat="server">      
    <div id="divResult" style="margin-top: 20px;"></div>
    <asp:TextBox ID="tbSearchName" runat="server" onKeyPress="searchKeyPress(event); "></asp:TextBox>      

</form>
</body>
</html>

如果有人知道如何做到这一点,请告诉我。

1 个答案:

答案 0 :(得分:3)

查看事件对象上的以下函数:

在您的情况下,您可以使用

e.preventDefault()

这将停止发生默认操作。