3

Dojo で選択オプションを作成中

dojo.byId("it1").add(dojo.create("option", { value:'1',innerHTML:'Iteration 1' }));

IE8 で無効な引数エラーが発生しました。残りのブラウザーは正常に動作します。

4

1 に答える 1

1

これは、ブラウザーが一種のフェイルオーバー メカニズムを実装しているためです。あるいは、基準さえ変わったのかもしれません。option古いブラウザーでは、この要素の実装がおかしかったという事実が残っています。新しいoptionDOMの次のプログラムによる作成を検討してください。

text='Iteration 1';
value=1;
defaultSelected = false;
selected=false;

document.getElementById('myselect').options.add(
  new Option(text, value, defaultSelected ,selected)
);

http://msdn.microsoft.com/en-us/library/ie/dd757810(v=vs.85).aspxを参照してください。

API には、オプションが選択されているかどうかを示す引数もあります。しかし、ここで興味深いのはパラメータですtext

大まかに訳すと

var opt = document.createElement('OPTION');
opt.text = text;
opt.value = value;

プログラムで作成された選択 (innerHTMLアプローチを使用) は、IE 8 より前および IE 8 を含む IE では正しく機能しないことがわかります。要素は単に親フォームに接続されていないため、送信時にサーバーに送信されません。

于 2014-02-15T12:03:10.490 に答える