一個基本的script問題

edited 十月 2013 in Javascript
想請教一下,我的表單裡有超過3個以上的清單,所以我用了下面的取名方式

serial[1]
serial[2]
serial[3]
serial[4]

且因為需要順序性,所以除了serial[1]之外的disabled都是true

但當我想在script中改動disabled屬性時卻因為名稱問題無法執行

document.list.serial[2].disabled=false; //無反應

清單名稱改成serial2卻可以…

document.list.serial2.disabled=false; //成功

請問我該如何解決呢?

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=3039

評論

  • edited 十二月 2007
    我對 javascript 不是很熟,所以只能用偷吃步的方式,為那些欄位指定一個 id ,然後透過 getElementById 來存取物件。
    <form name="test">
    <?php
    for($i=1 ; $i <=4 ; $i++) {
        echo '<input id="'.$i.'" type="text" name="serial['.$i.']" value="test'.$i.'" disabled><br />';
    }
    ?>
    </form>
    <script>
    val = document.getElementById('1');
    val.disabled = false;
    </script>
    
  • skrskr
    edited 十二月 2007
    試試看這樣子.

    serial = new Array();
    serial[1] = document.list.serial1;
    serial[2] = document.list.serial2;
    ...
    serial[n] = document.list.serialn;


    serial[1].disabled=false;
    serial[2].disabled=false;
    ...
    serial[n].disabled=false;
  • edited 十二月 2007
    我採用了getElementById()這個方法,因為我還是需要serial[2]這個名稱來submit作另1個頁面的處理,感謝2位的回覆
  • edited 十二月 2007
    插個話,我沒看過有document.list這個物件或集合哩?

    其實,如果name是唯一的話,有一個簡單方法:
    document.getElementsByName("serial[1]")[0].disabled = false;
    
Sign In or Register to comment.