好比说,一个表格中有若干行,若干列,每行的第一列是一个checkbox,这一行中其他列中的控件(input)默认为disable。点击一下这个checkbox,使其变成checked=true,使这一行中其他列的控件变为enable.然后点掉这个checkbox变为checked=faulse,这一行其他列的控件重新变回disable?请各位大哥多帮忙,小弟很急

解决方案 »

  1.   

    function Click(c)
    {
        var o = c.parentNode;
        while (o && o.tagName != "TR")
        {
            o = o.parentNode;
        }
        if (o)
        {
            var is = o.getElementsByTagName("INPUT");
            for (var i = 0, n = is.length; i < n; i++)
            {
                is[i].disabled = !c.checked;
            }
        } 
    }
    <input type="checkbox" onclick="Click(this)" />
      

  2.   

    1楼大哥,谢谢你的解答,这样写有一个问题,就是当你把checkbox再变回checked=faulse的时候,这个checkbox也会变为disable的,不知道要怎样改进一下?
      

  3.   


            for (var i = 0, n = is.length; i < n; i++)
            {
                if (is[i] == c){continue;}
                is[i].disabled = !c.checked;
            }