如果用getElementsByTagName也是麻烦
因为不止这个input还要一个一个判断
如果没办法也只能那样了

解决方案 »

  1.   

    <script>
    document.forms[0].getElementsByName("dd");
    </script>
      

  2.   

    这样好象只有一个dd的时候会报"undefined"的错误
      

  3.   

    if (document.forms[0]["dd"] )
      

  4.   

    if (document.forms[0]["dd"] )
    if (document.forms[0]["dd"].length )
      

  5.   

    为什么name相同的一组checkbox却不在同一个form里面?谁会写出这种先天不足的代码?
      

  6.   

    例如有两个form呢
    什么情况都有呢
      

  7.   


    “什么情况都有”这话是没错,但是有些情况的不应当出现,我们称之为“规范”。
    就比如同名的一组checkbox应当属于同一个form容器。
    eg.让你选择喜欢的水果,有3个checkbox分别对应“苹果”、“香蕉”、“葡萄”,现在你把苹果的那个checkbox放在form外面,如果人家全选了,提交以后如何取值?苹果不要了?
      

  8.   

    不好意思
    checkbox是我举的一个例子而已
    不一定是checkbox可能是select text
    举个例而已
      

  9.   

    道理是一样的,你为一组控件取了相同的名字,意味着它们应该属于同一类东西,应该属于同一个父控件,如果你需要定位到其中的某一些控件,那就意味着这些控件跟其它的不同,不应该属于同一类东西,不应该享有相同的name~
      

  10.   

    没用过ByName据说这个好像不符合W3C标准,,
    <script language="javascript">
    function test(){
    var x=document.getElementById('ff').getElementsByTagName('input');
    for (var i=0;i<x.length;i++){if (x[i].name=='dd') alert(i);};
    }
    </script><input name="dd" type="checkbox" value="">
    <form id="ff">
    <input name="dd" type="checkbox" value="">
    <input name="dd" type="checkbox" value="">
    </form>
    <input type="button" value="ClickMe" onclick="test();">会弹出两个值:0和1,也就是第一个input里的name值和第2个input里的name值分别可以用x[0].name和x[1].name表示出来
      

  11.   

    var dd = document.getElementById("ff").getElementsByName("dd");
      

  12.   

    document.getElementById("ff").elements('dd')
      

  13.   


    /**
     *<pre>通过className得到元素集合</pre>
     * @param {Object} className css类名
     * @param {Object} tag Dom的tagname
     * @param {Object} root 开始查找的根节点
     */
    function sinapay_getElementsByClassName(className, tag, root)
    {
    tag = tag || '*';
    root = root || document;
    var i = j = 0, a = [], elements = root.getElementsByTagName(tag), l = elements.length, nodes = [];
    for (; i < l; i++) 
    {
    j = 0;
    a = elements[i].className.split(" ");
    ll = a.length;
    for (; j < ll; j++) 
    if (className == a[j]) 
    nodes.push(elements[i]);
    }
    return nodes;
    }也许有用