2

ええ、これはFFとChromeで機能しますが、何らかの理由でIE 8では機能しません。フォームのセクションをクリアするためにラジオボタンを使用しています。そのセクションは選択ボックスですが、そのままにしておきたくありません。エリアが空です-代わりに、ページが読み込まれたときの状態にリセットしたいと思います。現時点では、IE8は空の小さな選択ボックスを残しています。

HTML:

<select id="city_select" disabled="true" name="location_id" onchange="show_search_button();"><option selected>Select your city</option> </select>

Javascript:

document.getElementById('city_select').innerHTML = "<option selected>Select your city</option>";

また、JavaScriptでcity_selectの代わりにlocation_idを使用しようとしましたが、役に立ちませんでした。innerTextとinnerContentも機能しません。inner.HTMLは以前の関数のIE8で機能しますが、innerHTMLをフォームに変換しようとはしていません。これがChromeとFFで機能するが、IE8では機能しない理由を誰かが知っていますか?そしてこれに対する解決策はありますか?助けてくれてありがとう!

4

2 に答える 2

0

これを試して:

document.getElementById('city_select').options.length = 0;

次に、新しいオプションを作成し、それをselectのoptions配列にプッシュします。オプションは、他のマークアップのように動作しないトリッキーなビットです。

オプションの作成方法を示すために編集:

var sel = document.getElementById('city_select').options.length = 0;
var opt = document.createElement('option');
opt.value = "Select Your City";
sel.options.push(opt);
sel.selectedIndex = 0;
于 2010-04-03T01:24:11.653 に答える
0

選択した要素に新しいオプションを割り当てるには、4つの方法があるはずです。一部のシナリオで機能するものと、他のシナリオで機能するものがあります。こちらをご覧ください-IEWindowsMo ​​bile5で<SELECT>にオプションを追加する方法

私にとって、Robustoのソリューションは、次の3つの理由で機能しませんでした。

1) select要素を保持して(後で4行目と5行目で使用するため)、次の行のオプションを削除する代わりselに、最初の行の変数が割り当てられdocument.getElementById('city_select').options.length = 0;ます。

var sel = document.getElementById('city_select');
sel.options.length = 0;

2)4行目sel.options.push(opt)(または後で提案sel.options[0] = opt)がオブジェクトをスローすると、このプロパティまたはメソッドエラーがサポートされません。代わりにこれを使用してください:

sel.appendChild(opt);

3)オプションに値を割り当てる以外に、表示するテキストも割り当てる必要があります。あなたはこのようにします:

opt.innerText = "Select Your City - displayed";

したがって、全体を要約すると、次のようになります。

var sel = document.getElementById('city_select');
sel.options.length = 0;
var opt = document.createElement('option');
opt.value = "Select Your City";
opt.innerText = "Select Your City - displayed";
sel.appendChild(opt);
sel.selectedIndex = 0;
于 2012-06-16T14:24:59.100 に答える