天天看點

使用createElement()建立checkbox不能設定name屬性

               今天在使用document.createElement()動态建立複選框時,發現不能為其name指派,以下是測試代碼:

<html>

  <head>

    <title>Test</title>

  </head>

  <body>

     <div id="testDiv"></div>

     <input type="button" onclick="addInput()" value="Test0">

     <input type="button" onclick="show()" value="Test1">

     <script language="javascript">

       function addInput(){

        var div = document.getElementById("testDiv");

         for(var ii = 0; ii < 5; ii++){

           var check = document.createElement("input");

           check.type = "checkbox";

           check.id = "chk_" + ii;

           check.name = "chkGroup";

           div.appendChild(check);

         }

         alert(div.innerHTML);

       }

       function show(){

        alert(document.getElementsByName("chkGroup").length);

    </script>

  </body>

</html>

       其中check.name = "chkGroup"這句話并不能起到預期的作用,無論是看生成後的HTML代碼還是觀察使用document.getElementsByName()擷取的數組長度,都會發現這個name設定并沒有起作用。當然這種情況隻出現在IE6和IE7中,而在FireFox中是沒有問題的。

      當然解決方法很簡單,在建立時,使用document.createElement("<input name='chkGroup'>")。不過還不知道是什麼原因?

      在Name屬性的說明中有這樣一句話:     

繼續閱讀