请看代码
<form name='form'>
<input type='text' name='a[11]'>
<input type='text' name='a[22]'>
</form>
请教有没有办法简单获取它们的集合?
试了form.a及form.a[]都不成功
getElementsByName也不行。
如果把下标11,22去掉是可以的,但是我需要下标做为变量名称传递过去。

解决方案 »

  1.   

    名称是一个完整的字符串,不能按下标处理。你可以
    for(i=0;i<document.form.elements.length;i++)
    {
     alert(document.form.elements[i].name)
    }
      

  2.   

    或者for(i=0;i<document.getElementsByTagName("input").length;i++)
    {
     alert(document.getElementsByTagName("input")[i].name)
    }
      

  3.   

    感谢你的回复,这个办法比较复杂,但也是唯一能想到的办法了。
    问题是,input 有很多,我只需要其中一些。那有什么办法简单过滤一下,加个 class,然后用class name判断?
    或者有更简单的?
      

  4.   

    不知道你起这样的名称是为什么a[22]??应该是php中的吧,php才有这样的怪名字。简化的方法是放在一个div或者span里面document.getElementById("spanID").getElementsByTagName("input")去查找
      

  5.   

    或者
    <input type='text' name='a[22]'>
    都改成
    <input type='text' name='a'>document.getElementsByName("a")
      

  6.   

    是的,你猜对了,主要是给php用,
    php要求变量名称必须是——如果是数组的话——name[]形式的,如果去掉了[]那么只能得到一个元素。
    不管咋样,我在你的方案的基础上做了一下调整,算是过了这关,不那么优雅。
    多谢。