2011-07-25 4 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です。詳細については、[この質問](http://stackoverflow.com/q/5878636/615754)を参照してください。あなたはid、name、value、classといった他の属性を変更しても問題ありません。 – nnnnnn

+0

私は最初に一般入力フィールドを動的に作成するためのクラスを使用しています: ' 'そして、さらにクラスを使用して型、名前、クラス、idなどを割り当てます...タイプ属性を_replace_にしようとしていません_ex novo_を1つ追加してください。 – max0005

+0

"一般的な入力フィールド"はないと思いますか?デフォルトでは、指定されていない場合は "text"になります。要素の作成方法とページへの追加方法について、いくつかのコードを示してください。 'newInput = document.createElement(" input ")'のようなものを使って入力を作成する場合は、IEで、次のステップとしてタイプを設定する必要があります*前に、実際にページに追加します'someExistingElement.appendChild(newInput)'やinsertBefore()などを使ってページに追加することができます。 – nnnnnn

答えて

1

<input>要素のtypeは、IEの文書に挿入される前に設定することができます。ドキュメントに入ったら、それは遅すぎます。

例:私はIEが一つの例外は、要素を作成した後、それを初期値を代入することで、あなたは「タイプ」input要素の属性を変更することはできません確信している

var input = document.createElement("input"); 
input.type = "button"; 
input.name = "foo"; 
input.value = "bar"; 
document.body.appendChild(input); 
関連する問題