我有一个页面。上面的文本框的个数不一定。但是我要判断每个文本框中的数字都为数字才能提交到数据库。不全是数字或不是数字就提示警告框。我用了一个for循环但是有问题。希望高人帮忙看看啊,这个循环中只做一次判断。就是说只对第一个文本框做了判断。别的都不判断。希望高人帮忙改下啊。或发个正确的给我。用for循环做。谢谢了
<script language="javascript">
function check(){
st = "0123456789";
for(i=1;i<5;i++){
sts = document.all("t"+i).value;
for (i = 0; i < sts.length; i++) {
if (st.indexOf(sts.charAt(i)) == -1) {
alert("Please Input Number");
return ;
}
}
return false;
}
document.act.submit();
}
</script>

解决方案 »

  1.   

    你判断了一个sts后就return false了后面的肯定不能运行了
      

  2.   

    var list = document.act.getElementsByTagName("input");
    for(var i=0;i<list.length;++i){
      var elem = list[i];
      if(elem.type=="text" && elem.name.indexOf("t")>=0){
        if(elem.value!="" && !/^\d+$/.test(elem.value)){
          alert("....");
          return false;
        }
      }
    }
      

  3.   

    简单的JS正则表达式验证:
    function(obj){
    if(!obj.test(/^[0-9]{1,20}$/))
      {
       alert("Please Input Number");
      return false;
      }
     esle
       return true;
    }
      

  4.   

    有这样的 ??
    去网上搜索个验证要为数字的正则表达式验证
    或者如下:<input type="text" name="aa"/>
    <input type="button" value="check" onclick="checktxt();"/>
    <script>
    function checktxt(){
    var a=document.getElementsByName("aa")[0].value;
    if(a==""){
    alert("请输入");
    }else if(isNaN(a)){
    alert("请输入数字");
    }else{
    alert("输入为数字");
    }
    }
    </script>
      

  5.   

    谢谢各位。根据fosjos兄弟的好方法。我解决了。谢谢大家了