if (selects[i].options[0].selected)
肯定是i超出了select集合的范围,因为你用的是所有input的length

解决方案 »

  1.   

    mmkk()说得有道理,我回去改一下,不过判断form中所有input 必须不为空且名字为s_elemt的元素必须为数字还没有解决。
      

  2.   

    document.getElementsByName("s_elemt") 这样就可以取到name=s_elemt的元素了。
      

  3.   

    document.getElementsByName("s_elemt") //这样得到的是一组数组
    document.getElementsByName("s_elemt").length //得到这一数组的长度
    document.getElementsByName("s_elemt")[i]     //操作第i+1个s_elemt元素
      

  4.   

    不过判断form中所有input 必须不为空且名字为s_elemt的元素必须为数字还没有解决。是逻辑错误,应该为:
    if ((inputs[i].type).toLowerCase()=="text"))

    if (inputs[i].value.replace(/^\s+|\s+$/g,"").length ==0){
                inputs[i].focus();
                alert("不能为空!\n请输入对应的内容!");
                return false;
        }
                 else 
         if ((inputs[i].name==s_elemt) && (!isNaN(inputs[i].value)) {
         inputs[i].focus();
                 alert("请输入数字!");
                 return false;
         }
    我没调试,大概就这意思...
      

  5.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY><form name=form1>
    <select name="select1">
      <option></option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
    </select>
    <select name="select2">
      <option></option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
    </select><BR>
    <INPUT type="text" NAME="text1"><BR>
    <INPUT type="text" NAME="text1"><BR>
    text2<INPUT TYPE="TEXT" NAME="text2"><BR>
    <INPUT type="button" value=hello onclick="checkIt('form1','text1')">
    </form><SCRIPT LANGUAGE="JavaScript">
    <!--
    function returnSelected(e){
      for(j=1;j<e.options.length;j++) if(e.options[j].selected)return true;
      return false;
    }function checkIt(form_name,s_elemt){
      var selects=document.all.tags("select");
      for(i=0;i<selects.length;i++)
     if(!returnSelected(selects[i])){
         selects[i].focus();
         return alert("请选择对应的项目!")
         }
      var inputs =document.all.tags("input");// eval("document.all['"+form_name+"'].elements");
      for(j=0;j<inputs.length;j++)
         if(inputs[j].type=='text'&&inputs[j].value.replace(/\s*/g,'')==''){
         inputs[j].focus();
     return alert("不能为空!\n请输入对应的内容!");
     }
    }
    //-->
    </SCRIPT>
    </BODY>
    </HTML>
      

  6.   

    多谢大家这么热心!!!!
    这是修改后的代码,可是还是判断不了数字的问题!!!
    大家有兴趣再干一下!!!
    function check_elements(form_name,s_elemt)
    {
    var i;
    //var inputs = eval("document."+form_name+".elements");
    var inputs=document.all.tags("input");
    var selects=document.all.tags("select"); for (i=0;i<selects.length;i++)
    {
    if (selects[i].options[0].selected)//selects[i].selectedIndex==0
         {
            selects[i].focus();
            alert("请选择对应的项目!");
            return false;
         }
    }

    for(i=0;i<inputs.length;i++)
    {    
    if ((inputs[i].type).toLowerCase()=="text")
         {
            if (inputs[i].value.replace(/^\s+|\s+$/g,"").length ==0)
    {
    inputs[i].focus();
    alert("    不能为空!\n 请输入对应的内容!");
            return false;
    }
    else if (inputs[i].name==s_elemt && !isNaN(inputs[i].value))
    {
            inputs[i].focus();
    alert("请输入数字!");
    return false;
    }
    }
    }
    eval("document."+form_name+".submit()");
    }
      

  7.   

    把 !isNaN(inputs[i].value) 改成 isNaN(inputs[i].value)
      

  8.   

    再试试看]
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY><form name=form1>
    <select name="select1">
      <option></option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
    </select>
    <select name="select2">
      <option></option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
    </select><BR>
    <INPUT type="text" NAME="text1"><BR>
    <INPUT type="text" NAME="text1"><BR>
    text2<INPUT TYPE="TEXT" NAME="text2"><BR>
    <INPUT type="button" value=hello onclick="checkIt('form1','text1')">
    </form><SCRIPT LANGUAGE="JavaScript">
    <!--
    function returnSelected(e){
      for(j=1;j<e.options.length;j++) if(e.options[j].selected)return true;
      return false;
    }function checkIt(form_name,s_elemt){
      var selects=document.all.tags("select");
      for(i=0;i<selects.length;i++)
     if(!returnSelected(selects[i])){
         selects[i].focus();
         return alert("请选择对应的项目!")
         }
      var inputs =document.all.tags("input");// eval("document.all['"+form_name+"'].elements");
      for(j=0;j<inputs.length;j++)
         if(inputs[j].type=='text'){
          if(inputs[j].name==s_elemt&&isNaN(inputs[i].value)) {
         inputs[j].focus();
     inputs[j].select();
     return alert("请输入数字!");
      }
      if(inputs[j].value.replace(/\s*/g,'')==''){
              inputs[j].focus();
          return alert("不能为空!\n请输入对应的内容!");
          }  }

    }
    //-->
    </SCRIPT>
    </BODY>
    </HTML>
      

  9.   

    多谢 lanbor(兰波) , llrock(百乐宝) 等原来是isNaN我没搞清楚,哈哈,也是我没有多推敲,接下来,就是要加上对参数的控制,比如有多个元素要判断是否为数字。就象dm里面隐藏多个层一样,有兴趣大家也来试一下,如果我写好了会贴上来的多谢多谢大家!!!!
      

  10.   

    最新的版本:function check_elements(form_name,s_elemt)
    {
    var i;
    //var inputs = eval("document."+form_name+".elements");
    var inputs=document.all.tags("input");
    var selects=document.all.tags("select"); for (i=0;i<selects.length;i++)
    {
    if (selects[i].options[0].selected)//selects[i].selectedIndex==0
         {
            selects[i].focus();
            alert("请选择对应的项目!");
            return false;
         }
    }

    for(i=0;i<inputs.length;i++)
    {    
    if ((inputs[i].type).toLowerCase()=="text")
         {
            if (inputs[i].value.replace(/^\s+|\s+$/g,"").length ==0)
    {
    inputs[i].focus();
    alert("    不能为空!\n 请输入对应的内容!");
            return false;
    }
    else if (inputs[i].name.indexOf(s_elemt)!=-1 && isNaN(inputs[i].value))
    {
            inputs[i].focus();
    alert("请输入数字!");
    return false;
    }
    }
    }
    eval("document."+form_name+".submit()");
    }