2011-07-31 51 views
1

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

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

回答

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或类似的东西来整理。

+0

是的,那看起来像我之后。谢谢! –