检查选项是否select与jQuery,如果没有select一个默认值

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

(select是在我刚刚inheritance的应用程序中用PHP函数的迷宫生成的,所以这是一个快速修复,而我的头脑围绕那些:)

虽然我不确定你想要完成什么,但是这些代码对我来说很合适。

<select id="mySelect" multiple="multiple"> <option value="1">First</option> <option value="2">Second</option> <option value="3">Third</option> <option value="4">Fourth</option> </select> <script type="text/javascript"> $(document).ready(function() { if (!$("#mySelect option:selected").length) { $("#mySelect option[value='3']").attr('selected', 'selected'); } }); </script> 

不需要为此使用jQuery:

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

这个问题很古老,有很多观点,所以我只是把一些东西扔在那里,这将有助于一些人,我敢肯定。

要检查select元素是否有任何选定的项目:

 if ($('#mySelect option:selected').length > 0) { alert('has a selected item'); } 

或者检查一个select是否没有select:

 if ($('#mySelect option:selected').length == 0) { alert('nothing selected'); } 

或者如果你在某种types的循环中,并想检查当前元素是否被选中:

 $('#mySelect option').each(function() { if ($(this).is(':selected')) { .. } }); 

在循环中检查一个元素是否被选中:

 $('#mySelect option').each(function() { if ($(this).not(':selected')) { .. } }); 

这些是这样做的一些方法。 jQuery有很多不同的方法来完成相同的事情,所以你通常只select哪一个看起来是最有效的。

lencioni的回答是我推荐的。 您可以更改选项('#mySelect option:last')的select器,以使用“ #mySelect option[value='yourDefaultValue'] ”select具有特定值的#mySelect option[value='yourDefaultValue'] 。 更多关于select器 。

如果你正在广泛地使用客户端上的select列表,请看这个插件: http : //www.texotela.co.uk/code/jquery/select/ 。 如果您想查看更多使用select列表的示例,请查看源代码。

这是我的function改变选定的选项。 它适用于jQuery 1.3.2

 function selectOption(select_id, option_val) { $('#'+select_id+' option:selected').removeAttr('selected'); $('#'+select_id+' option[value='+option_val+']').attr('selected','selected'); } 
 <script type="text/javascript"> $(document).ready(function() { if (!$("#mySelect option:selected").length) $("#mySelect").val( 3 ); }); </script> 

简单! 默认应该是第一个选项。 完成! 这将导致你不引人注目的JavaScript,因为JavaScript是不需要的:)

不显眼的JavaScript

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

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

查看select元素的selectedIndex 。 顺便说一句,这是一个纯粹的DOM的东西,而不是JQuery特定的。

这是一个快速的脚本,我发现工作…。结果被分配给一个标签。

 $(".Result").html($("option:selected").text()); 

你们select的方式太多了 只要按价值select:

 $("#mySelect").val( 3 ); 
 if (!$("#select").find("option:selected").length){ // } 

我发现一个好的方法来检查,如果select了选项,并select一个默认情况下,它不是。

  if(!$('#some_select option[selected="selected"]').val()) { //here code if it HAS NOT selected value //for exaple adding the first value as "placeholder" $('#some_select option:first-child').before('<option disabled selected>Wybierz:</option>'); } 

如果#some_select没有默认select的选项,那么.val()未定义的

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

这是检查一个选项的另一种方式被选中或不在jQuery中。 这将返回布尔值(True或False)。

[1]是select框选项的索引

更改select框上的事件触发,一旦它确实拉动所选选项的id属性: –

 $("#type").change(function(){ var id = $(this).find("option:selected").attr("id"); switch (id){ case "trade_buy_max": // do something here break; } }); 

我只是在寻找类似的东西,发现这个:

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

这将find类中没有选中选项的所有select菜单,并select默认选项(在这种情况下为“2”)。

我尝试使用:selected而不是[selected] ,但没有工作,因为总是select,即使没有任何属性

如果你需要明确地检查每个选项,看看是否有任何“select”属性,你可以这样做。 否则使用option:selected您将获得第一个默认选项的值。

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