ポストバックを防止するコードがありますが失敗しました。基本的に私はasp.netボタンを持っています。ポストバックが失敗するのを防ぐには:isValid = "undefined"
<asp:Button ID="btnSave" runat="server" Text="SaveChanges" OnClick="btnSave_Click"
CssClass="saveButton" ValidationGroup="answer" OnClientClick="return ValidateUserNameBeforeSubmitting();" />
そしてajaxコールウェブサービス。
function ValidateUserName() {
$.ajax({ type: "POST",
url: "../UserNameWebService.asmx/ValidateUserName",
data: "{'strUsername': '" +JSON.stringify($("#<%=TextUserName.ClientID%>").val()) + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data) {
return data.d;
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
function ValidateUserNameBeforeSubmitting() {
var isValid = ValidateUserName();
return isValid;
}
Webサービスはブール値を返し、コードにステップインします。 しかし、私がJavaScriptコードを踏んだとき、 "isValid"はブール値ではないことがわかりました。それは "未定義"です。 なぜですか?
ありがとうございました。
試してみて、ブール値が返されたかどうかを確認。 – Ravia
おそらくコードビハインドと関係があります。 'UserNameWebService.asmx/ValidateUserName'の戻り値はあなたが望むものではないかもしれません。この機能が何をしているのか投稿できますか? – DangerMonkey