呵呵
<script   language=Javascript>
function a(){  
  var   aa= document.getElementsByTagName("input")    
  for   (var   i=0;   i <aa.length;   i++)    
  {   var aname=aa[i].name; 
        var value=aa[i].value
  var reg=/^[TextBox_]+[0-9A-Za-z]+$/;
  var patrn=/^d$/;
      if(aa[i].type=="text" &&reg.test(aname)&&!patrn.test(value)){ 
      
      alert(''+aname+'不能为空且必须是数字');
      aa[i].focus(); //这样已经遍历所有的文本框 
}    
  } 
  return true
  }   
   </script>  
   
   <form name="form1" method="post" action="">
   <input name="TextBox_a" type="text" id="TextBox_a" /> 
<input name="TextBox_88" type="text" id="TextBox_88" /> 
<input name="NOTextBox_ee" type="text" id="NOTextBox_ee" /> 
<input name="TextBox_dd" type="text" id="TextBox_dd" /> 
<input name="1TextBox_dd" type="text" id="1TextBox_dd" /> 
<input type="button" id="Button2"  value="录入"   onClick="a()"> 
</form>写这样的遍历不好吗?

解决方案 »

  1.   

    我敢说lz其他语言一定写的比js好....
      

  2.   

    随手来一个
    <script>
    function checkForm(form){
    var txt=form.getElementsByTagName("input");
    for(var i=0;i<txt.length;i++){
    if(txt[i].getAttribute("rel")!=null){
    try{
    if(!eval(txt[i].getAttribute("rel")).test(txt[i].value)){
    alert(txt[i].title);
    return false;
    }
    }catch(e){alert("验证码写错鸟!");return false;}
    }
    }
    }
    </script><form onsubmit="return checkForm(this)">名称:
    <input type="text" name="name" rel="/^(?!\d)[a-zA-Z\d_]{3,16}$/" title="名称只能用3-16位字母,数字或下划线,且不能以数字开头" />
    <br />年龄:
    <input type="text" name="age" rel="/^(?!0|[2-9]\d\d)\d{1,3}$/" title="年龄只能在1-199之间" />
    <br />性别:
    <input type="text" name="sex" rel="/^[男女]$/" title="性别只能填写'男'或'女'" />
    <br /><input type="submit" value="提交" /></form>
      

  3.   

    偶的JS很菜的,不好意思,让大家见笑了。
    写出来是为了学习,在JS上吃过很多亏了。我的目的就是写好一个比较通用的,以后就不用一个一个的写验证了。这种加一个,
    rel="/^[男女]$/"
    我试过,在firefox里就undefined了,再说只对INPUT进行,其它的怎么办?
      

  4.   

    rel="/^[男女]$/" 
    我在ff2.0 试过可以啊...你从哪得出undefined?除了textarea 其它都是input了..而且都是value属性..
    加textarea也只需做一点小小的修改...
      

  5.   


    我想应该有点儿区别的。我把验证的函数放到了ID里面,通过chkform()函数一次性进行验证,这样不用查找和输入表单名了,以前经常性写验证的时候都是一个一个对应起来验证。
    所以我只想把它扩展起来,有更多的验证可以适用。在验证比较多的时候,不用翻页寻找,而直接在表单的ID里输入函数就是了。另外一个就是通用性,可以在不同的系统里使用,而不用修改太多,甚至于不修改。如果你有这样子的通用性很强的验证类库,请推荐一下,谢谢!
      

  6.   

    哈哈。你的可以哟,我之前自己试验的时候出了undefined提示。
    你试一下我那个表单,用你这个验证,如果能加上SELECT下拉验证更好,贴出来看看。
      

  7.   

    <script   language=Javascript> 
    function a(){   
      var   aa= document.getElementsByTagName("input")     
      for   (var   i=0;   i  <aa.length;   i++)     
      {   var aname=aa[i].name;  
            var value=aa[i].value 
      var reg=/^[TextBox_]+[0-9A-Za-z]+$/; 
      var patrn=/^d$/; 
          if(aa[i].type=="text" &&reg.test(aname)&&!patrn.test(value)){  
           
          alert(''+aname+'不能为空且必须是数字'); 
          aa[i].focus();  //这样已经遍历所有的文本框  
    }     
      }  
      return true 
      }    
        </script>  
    这样的遍历,你想严整什么都可以aa[i].type=="text"用他来判断类型
      

  8.   

    直接把 aa= document.getElementsByTagName("input")  这个换一下
      

  9.   

    哈哈!!如此以来,好像又回到我的问题了。
    我的chkform()已经做到遍历了,只是每一种检测会有所不同,在一个函数里全部搞定,还不如将他们分散到各自功能的函数中,或许这只是这人习惯,或者将你我的两种方式综合一下会比较合适,有空的时候再试试。大家帮我顶顶,希望能看到更好的。多谢!!
      

  10.   

    现在不写js验证了
    .net 直接拖控件,
    呵呵.