2014-10-22 129 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); 
}); 

我知道这是丑陋的,它应该是可以避免的,但如果没有作品,这将工作。