以下是我的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中查看时,我看到它正在进行POST,但是很快就消失了。关于如何解决这个问题的任何想法?
答案 0 :(得分:3)
尝试从$("#btnGetDate").click()
事件处理程序返回 false :
$("#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;
});
答案 1 :(得分:1)
karim79的解决方案将在Internet Explorer中完成这项工作 - 但为了确保它在Firefox和其他浏览器中也能正常工作,您可能希望向点击处理程序添加一个输入参数,该处理程序将执行click事件,并停止事件
$("#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;
});