我有一个国家/地区下拉菜单,我将所选属性设置为美国。我可以清楚地看到select =" select"选择在firebug中具有值US的OPTION。但是firefox或者chrome都没有选择US。 我有populate&的代码选定的国家如下。
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和一个特殊的调用&#34; resetForm&#34;这样做了。然而有一件事我不明白为什么仍然在firebug中选择属性的html选择?但最后我在resetForm调用后放置了这段代码。感谢大家的建议和救命。
答案 0 :(得分:3)
你不需要设置selected="selected"
,selected
本身就足够了
<option value="anything" selected>anything</option>
同时检查,您的HTML标记是否正确。您正在关闭<option> with </value>
。这是错误的,应该是<option></option>
修改强>
如果上述解决方案不起作用,您可以通过JavaScript设置它:
document.getElementById("idOfSelect").selectedIndex = "1";//index starts from 0
答案 1 :(得分:3)
我遇到了多个选择不选择所选值的特殊问题。我最终做的是用JS选择它们(我的应用程序中有jQuery,这样可以更容易),如下所示:
$('#select_element').find('option[selected="selected"]').each(function(){
$(this).prop('selected', true);
});
我知道这很难看,应该避免,但如果什么都行不通,那就行了。
答案 2 :(得分:2)
这对我有用,但你可以试试这个:
countryField.html(html).trigger('change');
答案 3 :(得分:1)
你不需要select =“selected”只是value.id +'selected&gt;' + ... 也应该不是 最后,检查一下
defaultValue == value.id
在调试器中。
答案 4 :(得分:0)