这是我的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;
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top