非常に奇妙な問題です。aspnetWeb形式のテキストボックスがあります。jqueryを使用してテキストボックスを検証します。検証に合格しなかった場合は、テキストボックスの横に赤い警告が表示されます。これまでのところ、ページの任意の場所をクリックして、テスト用に無効なテキストを入力するつもりだったとしたら、これで問題ありません。
私のコード:(更新済み)
<script type="text/javascript">
$(document).ready(function () {
$("#<%=TextUserName.ClientID%>").blur(function () {
ValidateUserNameAfterBlur();
});
});
function ValidateUserName() {
$.ajax({ type: "POST",
url: "../UserNameWebService.asmx/ValidateUserName",
data: "{'strUsername': '" + $("#<%=TextUserName.ClientID%>").val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data) {
return data;
}
});
}
function ValidateUserNameBeforeSubmitting() {
isValid = ValidateUserName();
return isValid;
}
function ValidateUserNameAfterBlur() {
isValid = ValidateUserName();
$('#TextUserNameError').toggle(!isValid);
}
</script>
その他のマークアップコード:
<td class="style4">
<asp:TextBox ID="TextUserName" runat="server"></asp:TextBox>
</td>
<td>
<span id="TextUserNameError" style="display:none; color:Red; font-weight:bold;">This is not a valid username</span>
</td>
ただし、Webページにはasp.netボタンがあります。ボタンをクリックした後、エラーが表示されましたが、すぐに消えました。
ボタンのコード:
<p>
<asp:Button ID="btnSave" runat="server" Text="SaveChanges" OnClick="btnSave_Click"
CssClass="saveButton" ValidationGroup="answer" OnClientClick="return ValidateUserNameBeforeSubmitting();" />
</p>
ポストバックが原因だと思いますが、手がかりはありません。専門家からの助けに感謝します。
追加画像
と