2011-07-25 38 views
0

我最近開發了一個JavaScript類,用於爲輸入字段分配屬性。該課程在Firefox/Chrome/Opera/Safari中完美地工作,但在Internet Explorer中出現錯誤。 (不支持的命令。)動態分配屬性到Internet Explorer中的輸入字段

我有兩個TRED:

this.my_element.type = "xxx"; 

以及帶:

this.my_element.setAttribute("type", xxx); 

都返回相同的錯誤。有沒有其他辦法可以處理IE中的輸入字段,可能無需爲IE /其他瀏覽器編寫單獨的代碼?

在此先感謝!

+0

我敢肯定IE不允許你改變「類型」輸入元素的屬性,與一個例外是創造一種元素之後給它分配的初始值動態。你可以通過用另一種新類型替換整個元素來解決這個問題 - 我知道它很笨重,但那是你的IE。請參閱[此問題](http://stackoverflow.com/q/5878636/615754)瞭解更多信息。更改其他屬性(例如,id,名稱,值,類別)應該沒有問題。 – nnnnnn

+0

我首先使用一個類來動態創建一個通用輸入字段:'',然後使用另一個類來分配類型,名稱,類,ID等等......我不是試圖替換type屬性,而是添加一個_ex novo_。 – max0005

+0

我不認爲有「通用輸入字段」嗎?如果沒有指定,默認的類型將是「文本」。請爲您如何創建元素以及如何將其添加到頁面中顯示一些代碼。如果你正在使用'newInput = document.createElement(「input」)'來創建輸入,那麼在IE中,你需要將*類型設置爲下一步* *實際上將它添加到頁面中(我假設你繼續使用'someExistingElement.appendChild(newInput)'或insertBefore()或其他)將它添加到頁面中。) – nnnnnn

回答

1

在IE被插入文檔之前,您只能設置<input>元素的type。一旦它在文檔中,就爲時已晚。

例子:

var input = document.createElement("input"); 
input.type = "button"; 
input.name = "foo"; 
input.value = "bar"; 
document.body.appendChild(input); 
相關問題