2010-04-03 121 views
2

是的,這是適用於FF和Chrome,但由於某種原因不會在IE 8中工作。我使用單選按鈕清除表單的一部分..該部分是選擇框,但我不想要將該區域留空 - 相反,我想將其重置爲頁面加載時的狀態。目前IE8只是給我留下一個空的小選擇框。InnerHTML IE 8無法正常工作?重置表格

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?有沒有解決這個問題的方法?任何幫助讚賞謝謝!

回答

0

試試這個:

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

然後創建一個新的選項,並將它推到選擇的選項排列。選項是一個棘手的位,不像其他標記。

編輯來展示如何創建一個選項:

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; 
+0

感謝您的答覆!我想我需要重新閱讀它,但它不是很確定如何做第二點 - 但也許是因爲我半睡着了!乾杯反正,希望這有效:) – Kiada 2010-04-03 01:28:20

+0

好吧,我告訴你一種方法來做到這一點。 – Robusto 2010-04-03 02:18:22

+0

感謝您的幫助!不幸的是,在用上面的代碼替換我的代碼行之後 - 現在Firefox或Chrome都沒有工作(它們都只顯示一個空的選擇框)..這是一個正確的頭疼的呃。再次感謝.. – Kiada 2010-04-03 09:50:57

0

有應該是一個選擇要素分配的新選擇的4路。有些在某些情況下工作,有些在其他情況下工作。看看這裏 - How to Add options to <SELECT>, in IE Windows Mobile 5

對於我來說,的robusto的解決方案沒有奏效,由於三個原因:第一行

1)sel變量分配document.getElementById('city_select').options.length = 0;,而不是簡單地舉行了選擇元素(在第4日後使用和第五行),然後刪除在下一行選項,例如:

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;