最近更新: 2006-07-04

JavaScript~~DOM~~A bug about radio input and createElement in M$IE

根據 W3C 關於 HTML DOM 的建議,我使用下例的 ECMAScript 建立 Radio input element 。使用新版瀏覽器,如 Firefox 也得到了我需要的效果。但在舊版瀏覽器,即 M$IE6 中,卻出現了錯誤。 M$IE 會建立 Radio input element ,但是卻無法選取...

var ATEST = document.getElementById('ATEST');
var radio;
for(var i = 0; i < 10; i++) {
	radio = document.createElement('input');
	radio.setAttribute('name', 'ATEST');
	radio.setAttribute('type', 'radio');
	radio.setAttribute('value', i);
	ATEST.appendChild(radio);
}

M$IE6 的使用者,可以看到下面有10個不能點選的單選按鈕 (radio button)。

我查看了一下,結果在 MSDN 中也有說明,參考 createElement Method。它建議的方式如下所示,真是誤人子弟的錯誤寫法。明知有錯,卻又以「技術支援」形式,用旁門左道的小技巧呈現出來。注意,這個 M$IE 適用的錯誤示範,對於遵循 W3C DOM 實作的大多數新版瀏覽器,如 FireFox ,並不適用。

var ATEST2 = document.getElementById('ATEST2');
var radio;
for(var i = 0; i < 10; i++) {
	radio = document.createElement('<input name="ATEST2" type="radio" value="'+i+'"/>');
	ATEST2.appendChild(radio);
}

新版瀏覽器如 FireFox 的使用者,看不到下面10個單選按鈕 (radio button)。

樂多舊網址: http://blog.roodo.com/rocksaying/archives/1848520.html