我需要一些幫助與jQuery和停止asp.net按鈕回發。如果你看下面的代碼,我定義了一個名爲err的變量並賦值爲0.然後我有jquery從web服務中獲取一個字符串,它實際上是一個錯誤字符串。如果此字符串的長度爲0,則將err等於1,否則將err等於2,因爲我們收回了業務規則錯誤。jQuery停止按鈕回發
當我調試應用程序時,似乎err等於0,並且從未1或2.它似乎也是Web服務在我最後一條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" />
是的,你是對的。順序不像我想的那樣。我將如何去改變我的Web服務調用是同步的? – MikeB55
是的,先生。那樣做了。我添加了異步:false,它工作。非常感謝你。 – MikeB55
然而,這不是最好的解決方案,你應該考慮如何重構代碼以不需要同步調用。如果Web服務響應緩慢,或者根本沒有響應,它們將引發問題。 – CaffGeek