标题:遇到一个控件的问题,恳请大牛们帮一下
只看楼主
yehuanfeng
Rank: 4
等 级:业余侠客
帖 子:75
专家分:201
注 册:2010-8-3
结帖率:84.62%
已结贴  问题点数:5 回复次数:12 
遇到一个控件的问题,恳请大牛们帮一下
        CustomValidator可以在客户端和服务器端都可以添加验证函数,对服务器端的验证机制我比较容易理解,但是对于客户端的不知道怎么理解,下面的代码可以实现客户端的验证,但是我不知道具体是怎么样的??
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="密码长度至少为6" ClientValidationFunction ="ClientValidateUserName" ControlToValidate="TextBox1"></asp:CustomValidator>
            <script language="javascript" type="text/javascript">
                function ClientValidateUserName(source,args)
                {
                    //alert(source);source=CustomValidator1,为验证控件
                    //alert(args);
                    var obj=document.getElementById("TextBox1");
                    if(obj.value.length<6)
                    {
                        args.IsValid=false;
                    }
                    else
                    {
                        args.IsValid=true;
                    }
                }
             </script>   
      其中TextBox1是被验证的对象控件。这里的关联性看不出来啊,谢谢!!!
搜索更多相关主题的帖子: javascript function 服务器 
2010-12-22 22:16
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:3 
其中TextBox1是被验证的对象控件。这里的关联性看不出来啊
不是很理解LZ的意思
var obj=document.getElementById("TextBox1");


出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-23 08:30
yehuanfeng
Rank: 4
等 级:业余侠客
帖 子:75
专家分:201
注 册:2010-8-3
得分:0 
回复 2楼 wangnannan
这样说吧,就是这里的args只是函数中自己定义的参数,它怎么会有IsValid属性呢,还有就算它有属性,它的属性怎么和CustomValidator控件对应起来??
2010-12-23 09:11
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
这是它自带的参数啊 args 其实就是 arguments
具有以下两个属性的对象:Value 和 IsValid。使用此参数可以获取控件的值,以根据自定义验证例程验证并指示该值是否有效。
source 参数是对为 CustomValidator 控件呈现的 <span> 元素的引用。因此,您可以编程的方式控制 <span> 标记,如修改 InnerHtml 属性。
服务器端验证与客户端验证一样,可以通过使用 arguments 参数的 Value 属性来访问要验证的输入控件中的字符串。通过设置 arguments 参数的 IsValid 属性返回验证结果。

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-23 09:35
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
客户端验证 就是JS验证么
程序代码:
 <span id="CustomValidator1" style="color:Red;visibility:hidden;">
        <script language="javascript" type="text/javascript">
                function ClientValidateUserName(source,args)
                {
                    //alert(source);source=CustomValidator1,为验证控件
                    //alert(args);
                    var obj=document.getElementById("TextBox1");
                    if(obj.value.length<6)
                    {
                        args.IsValid=false;
                    }
                    else
                    {
                        args.IsValid=true;
                    }
                }
             </script>  

        </span>
CustomValidator1 转换后就是一个span了

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-23 09:38
yehuanfeng
Rank: 4
等 级:业余侠客
帖 子:75
专家分:201
注 册:2010-8-3
得分:0 
回复 4楼 wangnannan
还是有点模糊,这里的args只是自己定义的,我也可以把它定义成其它的,比如AAAA,结果还会一样吗?
还有 var obj=document.getElementById("TextBox1"); 具有什么作用?
2010-12-23 18:01
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8074
专家分:6657
注 册:2005-11-7
得分:3 
回复 6楼 yehuanfeng
function ClientValidateUserName(source,args)
{
    //读取TextBox1的对象,obj.value就能读取到TextBox1中的值了
    var obj=document.getElementById("TextBox1");
    //在这里读到TextBox1中的值,判断其长度是否小于6,如果小于就返回false,从这里看args应该是一个对象,属于地址操作的,所以其他地方应该能得到args.IsValid的最终值
    if(obj.value.length<6)
                    {
                        args.IsValid=false;
                    }
                    else
                    {
                        args.IsValid=true;
                    }
                }

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-12-24 00:18
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
回复 6楼 yehuanfeng
那肯定不行了? 我问你static用 aaa替换能声明静态变量么?

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-24 08:22
yehuanfeng
Rank: 4
等 级:业余侠客
帖 子:75
专家分:201
注 册:2010-8-3
得分:0 
回复 8楼 wangnannan
我通过实验发现,改变args完全没有关系(比如AAAA),但是如果把前面的一个参数source去掉的话,结果就不对了,还有就是这里的source也可以替换成其它的字符,比如AAA
2010-12-24 09:56
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
回复 9楼 yehuanfeng
是么? 这个没试过 那俺就不知道了

[ 本帖最后由 wangnannan 于 2010-12-24 10:03 编辑 ]

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-24 10:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-329646-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.455641 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved