1

ここに私の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>

My Page メソッド id は次のように定義されます。

    [System.Web.Services.WebMethod]
    public static string GetDate()
    {
        return DateTime.Now.ToString();
    }

[日付を取得] ボタンをクリックすると、画面に日付が一瞬表示されましたが、ページ全体が読み込まれているため、消えてしまい、firebug で表示すると、POST を実行していることがわかりますが、すぐに消えてしまいます。これを解決する方法についてのアイデアはありますか?

4

2 に答える 2

3

イベント ハンドラからfalseを返してみてください。$("#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;
    });
于 2009-06-09T22:13:04.563 に答える
1

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;
});
于 2009-06-09T22:23:29.050 に答える