2009-06-09 2 views
1

다음은 내 html 코드입니다.이 JQuery가 asp.net 페이지 호출로 전체 페이지를로드하는 이유는 무엇입니까?

<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(); 
    } 

Get Date 버튼을 누르면 두 번째 화면에서 날짜 플래쉬를 보았습니다. ,하지만 전체 페이지가로드되기 때문에, 그것은 사라지고 내가 불똥 속에서 그것을 볼 때, 나는 POST를하고있는 것을 볼 수 있지만 빨리 사라집니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

답변

3

하면 $("#btnGetDate").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; 
}); 
+0

위대한 일입니다. 감사. – Xaisoft

1

karim79의 솔루션은 Internet Explorer에서 일을 할 것입니다 :

+0

파이어 폭스에서 실제로 작동했지만 아이디어도 좋습니다. – Xaisoft

관련 문제