检查选项是否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; } });