1

我需要验证各种 ASP.NET 控件,但不是在验证失败时在每个控件旁边显示标准文本/星号/图像,而是需要显示自定义内容(更改输入文本框的轮廓颜色、显示工具提示等)。 )。在大多数情况下,我可以使用标准验证控件(例如,TextBox 的RequiredFieldValidator),验证失败时的显示除外。

我已经开始创建 CustomValidators,但是对于各种验证(必填字段、正则表达式、范围),我需要多次执行此操作。仅仅为了改变响应输出而重新创建这些验证器的逻辑似乎是一种浪费。http://msdn.microsoft.com/en-us/library/3w0bs977.aspx上的 MS 文档说,在这种情况下,可以在客户端和服务器上完成自定义响应:“在客户端和服务器端,您都可以创建自定义响应,例如控件中的颜色更改或标签上文本的字体更改。” 它给出了服务器端的示例,但没有给出客户端的方法。处理客户端自定义响应的最佳方式是什么?

4

1 回答 1

1

这篇文章可能会帮助你:

http://msdn.microsoft.com/en-us/library/aa479045.aspx

特别是本节(查找“客户端验证”,然后在下方“特殊效果”):

<asp:Label id=lblZip runat=server 
   Text="Zip Code:"/> 
<asp:TextBox id=txtZip runat=server 
   OnChange="txtZipOnChange();" /></asp:TextBox><br>
<asp:RegularExpressionValidator id=valZip runat=server
   ControlToValidate=txtZip
   ErrorMessage="Invalid Zip Code" 
   ValidationExpression="[0-9]{5}" /><br>

<script language=javascript>
function txtZipOnChange() {
   // Do nothing if client validation is not active
   if (typeof(Page_Validators) == "undefined")  return;
   // Change the color of the label
   lblZip.style.color = valZip.isvalid ? "Black" : "Red";
}
</script>

还有一些接线需要做,你可以用一些 jQuery 或类似的东西来整理

于 2011-08-01T03:47:33.790 回答