我有一个文本框,我希望用户能够输入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>
如果有人知道如何做到这一点,请告诉我。
答案 0 :(得分:3)
查看事件对象上的以下函数:
在您的情况下,您可以使用
e.preventDefault()
这将停止发生默认操作。