jQuery에 대한 도움이 필요하고 asp.net 버튼 포스트 백을 중지해야합니다. 아래 코드를 보면 err이라는 변수를 정의하고 값을 0으로 지정했습니다. 그런 다음 jquery가 웹 서비스에서 문자열을 가져 오게됩니다. 실제로는 오류 문자열입니다. 이 문자열의 길이가 0이면 err = 1로 설정하고 그렇지 않으면 err = 2로 설정합니다. 비즈니스 규칙 오류가 반환되기 때문입니다.jQuery 중지 버튼 포스트 백
응용 프로그램을 디버깅 할 때 err이 0이고 1이나 2가되지 않는 것 같습니다. 또한 웹 서비스는 포스트 북을 중지해야하는 마지막 if 문 다음에 값을 가져 오는 것으로 보입니다.
도움을 주시면 감사하겠습니다. 감사.
$(document).ready(function() {
$('#<%=Button1.ClientID %>').click(function (e) {
//Find out the hour and time of the current request
var myString = $('#<%=DropDownList1.ClientID %>').val();
var myResult = myString.split(":");
var myHour = myResult[0];
var myTime = myResult[1];
var xDate = $("*[id$='hiddenDate']").val();
var err = 0;
//Check to see if the end time of the event somehow falls during a time when another event is occuring.
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "StudiesWebService.asmx/CheckEndTime",
data: "{'UserName':'" + "jacksonm" + "','xDate':'" + xDate + "','xHour':'" + myHour + "','xMinutes':'" + myTime + "'}",
dataType: "json",
success: function (data) {
var myReturnedString = data.d;
//if the returned string length is greater than 0, then set err = 2
if (myReturnedString.length = 0) {
err = 1;
}
else {
err = 2;
}
$('.result').html(myReturnedString);
},
error: function (e) {
$('.result').html("An Error occured checking the validity of this event." + e);
err = 2;
}
});
//stop the postback here depending on what err equals.
if (err == 2) {
return false;
}
else {
return true;
}
});
});
<asp:Button ID="Button1" runat="server" Text="Submit Time" class="CLOSE" onclick="Button1_Click" />
예, 당신 말이 맞아요. 순서는 내가 생각한 것과 다르다. 웹 서비스 호출을 동기식으로 변경하는 방법은 무엇입니까? – MikeB55
예. 그랬어. 나는 async : false를 추가했고 그것은 효과가 있었다. 고맙습니다. – MikeB55
그러나 이것은 최상의 솔루션은 아니지만 동기식 호출이 필요하지 않도록 코드를 어떻게 재구성 할 수 있는지 생각해야합니다. 웹 서비스가 응답 속도가 느리거나 전혀 응답하지 않으면 문제가 발생합니다. – CaffGeek