我的页面中有许多TextBox控件,我想用验证控件去验证这些TextBox的取值是否为数字,可是太多,这样设置太烦琐,有没有好的方法可以解决些问题!

解决方案 »

  1.   

    你可以使用脚本进行遍历function TextClear()
    {
    var mm = document.getElementsByTagName("input").length ;
    for(var i=0;i<mm;i++)
    {
    var dd = document.getElementsByTagName("input").item(i);
    if(dd.type == "text")
    {
    dd.value="";
    }
    }
    }
    </script>
      

  2.   

    可考虑封装一个TextBox和RegularExpressionValidator组成的自定义控件,结合正则表达式
    设定验证属性
      

  3.   

    同意楼上的做法,继承textbox控件,在keypress中增加有效性验证,封装后引用代替原textbox
      

  4.   

    不需要封装textbox的,就用脚本遍历所有页面控件好了,非常简单,
    看hchxxzx(NET?摸到一点门槛) 的
      

  5.   

    可考虑封装一个TextBox和RegularExpressionValidator组成的自定义控件,结合正则表达式
    设定验证属性
      

  6.   

    不错
    hchxxzx(NET?摸到一点门槛) 就够简单的啦
      

  7.   

    最好的办法就是通过CSS的class,你只要设置控件所用的样式CSS的CLASS就行了.后面的HTC中的javascript你自己写吧.CSS文件中:.lend        { BACKGROUND: #ffffff; BORDER-BOTTOM: rgb(80,102,70) 1px solid; BORDER-LEFT: rgb(80,102,70) 1px solid; BORDER-RIGHT: rgb(80,102,70) 1px solid; BORDER-TOP: rgb(80,102,70) 1px solid; FONT-SIZE: 9pt; FONT-WEIGHT: normal;behavior:url(../../include/deeptree.htc);}deeptree.htc文件的内容如下,实现功能:当文件框用此CSS的CLASS时,当获得焦点,则变色,失去焦点也变色,如果回车,则跳到下一个控件: 
    <public:component><public:attach event="onfocus" onevent="Gwfocus()" />
    <public:attach event="onblur" onevent="Gwblur()" />
    <public:attach event="onkeydown" onevent="Gwkeydown()" /><script language="JScript">
    function Gwfocus()
    {
    window.event.cancelBubble = true;
    var Ct= window.event.srcElement;if(Ct.type=="text"||Ct.type=="textarea")
      {
      if (!Ct.style.backgroundColor || Ct.style.background=="#ffffff")
     Ct.style.background="#ccffcc";
     }
    }function Gwblur()
    {
    window.event.cancelBubble = true;
    var Ct= window.event.srcElement;if(Ct.type=="text"||Ct.type=="textarea")
     {
     if(Ct.style.background=="#ccffcc")
    Ct.style.background="#FFFFFF";
    }
     }
     
     function Gwkeydown()
     {
     var Ct= window.event.srcElement;
      if ((window.event.keyCode==13) && !(window.event.ctrlKey) && !(Ct.type=="textarea")) 
            window.event.keyCode=9;
     }
     
    </script>
    </public:component>
      

  8.   

    封装是个好办法
    若你要是不想那样做,
    你也可以在服务器端实现
    你为每个Textbox增加个验证控件
    然后,再放一个公共的Label控件,显示出错信息
    当你在提交页面时,比如查询或更新时判断
        this.验证控件1.Validate();
    this.验证控件2.Validate();
    if (验证控件1.IsValid && 验证控件2.IsValid )
    {
    this.Label1.Text="";
    }
    else
    {
    this.Label1.Text="应输入数字,请检查";
    return;
    }
      

  9.   

    function TextClear()
    {
    var mm = document.getElementsByTagName("input").length ;
    for(var i=0;i<mm;i++)
    {
    var dd = document.getElementsByTagName("input").item(i);
    if(dd.type == "text")
    {
    dd.value="";
    }
    }
    }
    ---------------------------------------------------------
    这段代码的作用是什么????(初学者问)
      

  10.   

    hchxxzx(NET?摸到一点门槛)能说一下你这段脚本的意思吗?
      

  11.   

    代码明白了,可是用了hchxxzx(NET?摸到一点门槛)的方法好像不起做用,请指点
      

  12.   

    这样还是不行
    <script for="doucment" event="onclick">
    if(event.srcElement.tagName=="input"{
     TextClear();
    }
    </script>
    <script language=javascript>
    function TextClear()
    {
    var mm = document.getElementsByTagName("input").length ;
    for(var i=0;i<mm;i++)
    {
    var dd = document.getElementsByTagName("input").item(i);
    if(dd.type == "text")
    {
    dd.value="";
    }
    }
    }