使用jQuery,你如何检查选择菜单中是否有一个选项,如果没有,分配一个选择的选项。

(选择生成与一个应用程序的PHP函数的迷宫,我刚刚继承,所以这是一个快速修复,而我得到我的脑袋周围的那些:)


当前回答

我已经遇到了texotela插件,这让我像这样解决它:

$(document).ready(function(){
    if ( $("#context").selectedValues() == false) {
    $("#context").selectOptions("71");
    }
});

其他回答

查看select元素的selectedIndex。顺便说一下,这是一个普通的DOM,不是特定于jquery的。

$("option[value*='2']").attr('selected', 'selected');
// 2 for example, add * for every option

我在找类似的东西,发现了这个:

$('.mySelect:not(:has(option[selected])) option[value="2"]').attr('selected', true);

这将查找类中尚未选定选项的所有选择菜单,并选择默认选项(在本例中为“2”)。

我尝试使用:selected而不是[selected],但这不起作用,因为某些东西总是被选中,即使没有任何属性

如果你需要显式检查每个选项,看看是否有“selected”属性,你可以这样做。否则使用option:selected你将得到第一个默认选项的值。

var viewport_selected = false;      
$('#viewport option').each(function() {
    if ($(this).attr("selected") == "selected") {
        viewport_selected = true;
    }
});

不需要使用jQuery:

var foo = document.getElementById('yourSelect');
if (foo)
{
   if (foo.selectedIndex != null)
   {
       foo.selectedIndex = 0;
   } 
}