2014-10-22 116 views
3

我有一個國家下拉列表,我將選定的屬性設置爲美國。我可以清楚地看到選擇=「選擇」到在螢火蟲中選擇具有值US的選項。但firefox或chrome都沒有顯示美國的選擇。 我有代碼填入&選定的國家如下。html選擇即使設置後選擇不顯示選擇

var countryData = getCountryData(); 
var html = '<option value="">Select Country</option>'; 
$.each(countryData, function(key,value) { 
    if(defaultValue == value.id) 
    { 
     html = html + '<option value="'+value.id+'" selected="selected">'+value.name+'</option>'; 
    } 
    else 
    { 
     html = html + '<option value="'+value.id+'">'+value.name+'</option>'; 
    } 
}); 
countryField.html(html); 

如果確實有可能因爲某種原因導致瀏覽器未顯示,我們甚至會選擇所選的屬性。

更新:好吧,我期待它必須與其他代碼衝突。情況就是如此。我正在使用bootstrapValidator和一個特殊的調用「resetForm」來做這種行爲。不過有一點我不明白爲什麼還要在firebug中選擇顯示選定屬性的html?但最後我在resetForm調用後放置了這段代碼。感謝所有建議&的幫助。

回答

1

你不需要選擇= 「選擇」 只是value.id + '選擇>' + ... 也應該是不 最後,檢查

defaultValue == value.id 

在調試器。

+0

我試過之前也試過。那也不起作用。 – 2014-10-22 06:35:29

+0

看起來像我的評論被刪除的一部分,你有另一個問題是 2014-10-22 07:14:29

2

這對我的作品,但你可以試試這個:

countryField.html(html).trigger('change');

3

你不需要設置selected="selected"selected本身就足以

<option value="anything" selected>anything</option> 

還要檢查,是你的HTML標記是正確的。您正在關閉<option> with </value>。這是錯誤的,應該是​​3210

編輯

如果上述方案不能正常工作,你可以將它通過JavaScript:

document.getElementById("idOfSelect").selectedIndex = "1";//index starts from 0 
+0

嗯我使用的是價值而不是選項。這是愚蠢的錯誤,我解決它。但結果似乎與以前相同:(。 – 2014-10-22 07:29:09

+0

@ kuldeep.kamboj你可以更新與最新的變化的問題? – 2014-10-22 07:35:58

+0

@ kuldeep.kamboj檢查此http://www.w3schools.com/tags/tryit.asp?filename= tryhtml_option_selected它工作正常 – 2014-10-22 07:41:46

0

我曾多次的這種奇特的問題,選擇不選擇選定的值。我落得這樣做是JS選擇他們(我有jQuery的在我的應用程序,這樣就使得它更容易),像這樣:

$('#select_element').find('option[selected="selected"]').each(function(){ 
    $(this).prop('selected', true); 
}); 

我知道這是醜陋的,它應該是可以避免的,但如果沒有作品,這將工作。