我目前使用的是使用JavaScript來驗證/或文本框中有數字的CustomValidator。當我滿足驗證錯誤時,消息在提交之前不會清除。我該如何解決這個問題,使其像我的其他開箱驗證器一樣清除?我在C#中使用ASP.NET。如何擁有一個CustomValidator(使用JS)驗證OnBlur或OnChange
<script type="text/javascript">
function testnumbers(source, args) {
var s1 = document.getElementById('<%=arubaBox.ClientID%>').value; var s2 = document.getElementById('<%=shipBox.ClientID%>').value;
if (s1 == "" && s2 == "")
args.IsValid = false;
else if (s1 == "" && s2 != "")
args.IsValid = true;
else if (s1 != "" && s2 == "")
args.IsValid = true;
else if (s1 != "" && s2 !== "") args.IsValid = true;
}
</script>
<asp:TextBox ID="aBox" runat="server" MaxLength="7"></asp:TextBox>
<asp:CustomValidator
ID="CustomValidator1" runat="server" ClientValidationFunction="testnumbers"
ErrorMessage="CustomValidator"
ValidationGroup="Contact"
Text=" Please provide A # or Shipping Account #"
CssClass="errormessage"
Display="Dynamic" >
</asp:CustomValidator>
 <asp:RegularExpressionValidator
id="RegularExpressionValidator1"
runat="server"
ErrorMessage="Field not valid!"
ControlToValidate="aBox"
ValidationExpression="[0-9a-zA-Z]{5,}"
ValidationGroup="Contact"
/> 
<asp:RegularExpressionValidator
ID="NumErrAru"
runat="server"
ControlToValidate="aBox"
CssClass="errormessage"
ErrorMessage=" Numbers Only"
ValidationExpression="^[0-9]+$"
ValidationGroup="Contact"
Display="Dynamic"
Text=" Numbers Only">
</asp:RegularExpressionValidator>
謝謝您的答覆。我一直試圖讓它在過去一小時內工作,我相信它是我而不是你的代碼。但我無法去工作。 controltovalidate是<%= abox.ClientID%>。你可能可以插入我需要從上面的代碼,所以我可以看到它是如何工作 – jackncoke 2012-07-27 17:43:07
拉爾夫,這只是一個樣本...肯定如果你想檢查模糊abox控制,那麼你應該使用abox。客戶端ID。然後驗證發生在整個頁面上,然後會在for-each循環期間爲您提供所有無法驗證的控件。如果你有麻煩,你也可以看看http://stackoverflow.com/questions/969465/problem-with-page-clientvalidate或http://stackoverflow.com/questions/5486620/page-clientvalidate-object-expected -error-着找到的最驗證 – 2012-07-30 06:27:23