您是否可以为标准ASP.NET Web窗体validation器进行自定义客户端JavaScriptvalidation?

您是否可以为标准ASP.NET Web窗体validation器进行自定义客户端JavaScriptvalidation?

例如,使用asp:RequiredFieldValidator单独保留服务器端代码,但使用jQuery实现自己的客户端通知以突出显示字段或背景颜色。

标准的CustomValidator具有ClientValidationFunction属性:

  

是的我已经这样做了。 我使用Firebug找出Dot.Net JS函数,然后劫持了validation器函数

以下内容适用于所有validation器,纯粹是客户端。 我用它来改变ASP.Netvalidation的显示方式,而不是实际validation的实现方式。 它必须包装在$(document).ready()中,以确保它覆盖原始的ASP.netvalidation。

 /** * Re-assigns a couple of the ASP.NET validation JS functions to * provide a more flexible approach */ function UpgradeASPNETValidation(){ // Hi-jack the ASP.NET error display only if required if (typeof(Page_ClientValidate) != "undefined") { ValidatorUpdateDisplay = NicerValidatorUpdateDisplay; AspPage_ClientValidate = Page_ClientValidate; Page_ClientValidate = NicerPage_ClientValidate; } } /** * Extends the classic ASP.NET validation to add a class to the parent span when invalid */ function NicerValidatorUpdateDisplay(val){ if (val.isvalid){ // do custom removing $(val).fadeOut('slow'); } else { // do custom show $(val).fadeIn('slow'); } } /** * Extends classic ASP.NET validation to include parent element styling */ function NicerPage_ClientValidate(validationGroup){ var valid = AspPage_ClientValidate(validationGroup); if (!valid){ // do custom styling etc // I added a background colour to the parent object $(this).parent().addClass('invalidField'); } } 

您可以做的是挂钩validation器并分配一个新的评估方法,如下所示:

   

rfv是我所需的字段validation器的ID。 您必须在页面底部执行此操作,以便在注册validation程序的javascript之后分配它。

只需使用CustomFieldValidator并分配其客户端validation属性就容易多了。

   

查看此处和此处的文档。