首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >您可以为标准的ASP.NET表单验证器提供自定义的客户端javascript验证吗?

您可以为标准的ASP.NET表单验证器提供自定义的客户端javascript验证吗?
EN

Stack Overflow用户
提问于 2008-09-24 00:14:39
回答 2查看 15.3K关注 0票数 18

您可以为标准的ASP.NET表单验证器提供自定义的客户端javascript验证吗?

例如,使用asp:RequiredFieldValidator,让服务器端代码保持不变,但是使用jQuery来实现您自己的客户端通知,以突出显示字段或背景颜色。

EN

回答 2

Stack Overflow用户

发布于 2008-09-24 02:56:47

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

下面的代码将应用于所有验证器,并且是纯客户端的。我使用它来更改ASP.Net验证的显示方式,而不是实际执行验证的方式。它必须包装在$(document).ready()中,以确保它覆盖了原始的ASP.net验证。

代码语言:javascript
复制
/**
 * 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');
    }
}
票数 22
EN

Stack Overflow用户

发布于 2008-09-24 02:47:55

您可以做的是挂钩到验证器并分配一个新的evaluate方法,如下所示:

代码语言:javascript
复制
  <script type="text/javascript">
        rfv.evaluationfunction = validator;

        function validator(sender, e) {
            alert('rawr');
        }
    </script>

rfv是我所需的字段验证器的ID。您必须在页面的底部执行此操作,以便在注册验证器的javascript之后对其进行分配。

只需使用CustomFieldValidator并分配它的客户端验证属性就容易多了。

代码语言:javascript
复制
<asp:CustomValidator ControlToValidate="txtBox" ClientValidationFunction="onValidate" />

<script type='text/javascript'>
function onValidate(sender, e)
 { 
     alert('do validation');
 }
</script>

查看文档herehere

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/124682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档