即使在设置选中后,html选择也不显示

时间:2014-10-22 06:03:46

标签: html html-select selectedvalue

我有一个国家/地区下拉菜单,我将所选属性设置为美国。我可以清楚地看到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调用后放置了这段代码。感谢大家的建议和救命。

5 个答案:

答案 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)

我遇到了类似的问题,但在我的情况下,它不是 JS,而是另一个选项的 GET 变量值与选项的名称相匹配,但不起作用。

所以:enter image description here 失败了。重命名为唯一名称为我修复了它。