<script language=javascript>
 function retleng(){  
  var len
  if (document.forms[0].publish.name) {
len=1;
  } else {
len=document.forms[0].publish.length
  }
  alert(len)
 }
</script>form中的代码如下:
<form>
 <input type="text" name="publish" value="值1">
 <input type="text" name="publish" value="值2">
 <input type="text" name="publish" value="值3">
 <input type="button" value="click" onClick="retleng()">
</form>

解决方案 »

  1.   

    length是数组的属性,当只有一个元素时,len=document.forms[0].publish返回的不是数组,所以错误,改为
    <script language=javascript>
     function retleng(){  
      var publishs=document.getElementsByName("publish");//返回的总是数组
      var len=publishs.length;
      
      alert(len)
     }
    </script>form中的代码如下:
    <form>
     <input type="text" name="publish" value="值1">
     <input type="text" name="publish" value="值2">
     <input type="button" value="click" onClick="retleng()">
    </form>
      

  2.   

    <script language=javascript>
     function retleng(){  
      var e = document.forms[0].publish ;
      if(e)
    if(e.length)
    alert(document.forms[0].publish.length) ;
    else
    alert("1") ;
     }
    </script>form中的代码如下:
    <form>
     <input type="text" name="publish" value="值1">
     <input type="text" name="publish" value="值2">
     <input type="button" value="click" onClick="retleng()">
    </form>
      

  3.   

    to: freefalcon(心宇)
    getElementsByName在NS4.76上不支持.
    如果要求多浏览器的话, Andrawu(晓彬)是可行的啊.