为什么此jQuery致电ASP.NET PageMethod加载整个页面?
-
13-09-2019 - |
题
这是我的HTML的片段:
<input id="btnGetDate" type="submit" value="Get Date" />
<div id="Result"></div>
<script type="text/javascript">
$(document).ready(function() {
$("#btnGetDate").click(function() {
$.ajax({
type: "POST",
url: "Date.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#Result").text(msg.d);
}
});
});
});
</script>
我的页面方法ID定义如下:
[System.Web.Services.WebMethod]
public static string GetDate()
{
return DateTime.Now.ToString();
}
当我单击“获取日期”按钮时,我看到屏幕上的日期闪烁一秒钟,但是由于整个页面正在加载,它消失了,当我在Firebug中查看它时,我看到它正在执行帖子,但很快就消失了。关于如何解决这个问题的想法?
解决方案
尝试返回 错误的 从你的 $("#btnGetDate").click()
活动处理程序:
$("#btnGetDate").click(function() {
$.ajax({
type: "POST",
url: "Date.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#Result").text(msg.d);
}
});
return false;
});
其他提示
KARIM79的解决方案将在Internet Explorer中完成工作 - 但是为了确保它在Firefox和其他浏览器中工作,您可能想向单击处理程序添加输入参数,以进行点击事件,并停止活动。
$("#btnGetDate").click(function(ev) {
ev.stopPropagation();
$.ajax({
type: "POST",
url: "Date.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#Result").text(msg.d);
}
});
return false;
});
不隶属于 StackOverflow