Answers:
虽然我不确定您到底想完成什么,但是这段代码对我有用。
<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>
$("#mySelect").val(3);
$("#mySelect option")[2]['selected'] = true;
在研究Firebug中的对象结构后,找出了这一点 。
$("#mySelect").prop("selectedIndex", 2)
无需为此使用jQuery:
var foo = document.getElementById('yourSelect');
if (foo)
{
if (foo.selectedIndex != null)
{
foo.selectedIndex = 0;
}
}
这个问题很古老,并且有很多观点,所以我只想提出一些可以肯定的东西。
要检查选择元素是否具有任何选定项:
if ($('#mySelect option:selected').length > 0) { alert('has a selected item'); }
或检查选择项是否未选择:
if ($('#mySelect option:selected').length == 0) { alert('nothing selected'); }
或者您是否处于某种循环中,并且想要检查是否选择了当前元素:
$('#mySelect option').each(function() {
if ($(this).is(':selected')) { .. }
});
检查循环中是否未选择元素:
$('#mySelect option').each(function() {
if ($(this).not(':selected')) { .. }
});
这些是执行此操作的一些方法。jQuery有多种完成同一件事的方式,因此您通常只选择哪种方式似乎最有效。
lencioni的答案是我推荐的。您可以('#mySelect option:last')
使用“ #mySelect option[value='yourDefaultValue']
” 更改选项的选择器以选择具有特定值的选项。 有关选择器的更多信息。
如果您正在客户端上广泛使用选择列表,请查看此插件:http : //www.texotela.co.uk/code/jquery/select/。如果您想查看使用选择列表的更多示例,请查看源代码。
<script type="text/javascript">
$(document).ready(function() {
if (!$("#mySelect option:selected").length)
$("#mySelect").val( 3 );
});
</script>
简单!默认值应该是第一个选项。做完了!那将导致您使用不引人注意的JavaScript,因为不需要JavaScript :)
我已经遇到过提到的texotela插件,它可以让我这样解决:
$(document).ready(function(){
if ( $("#context").selectedValues() == false) {
$("#context").selectOptions("71");
}
});
看的selectedIndex中的select
元素。顺便说一句,这是普通的DOM事情,而不是特定于JQuery的事情。
if (!$("#select").find("option:selected").length){
//
}
我找到了一种很好的方法来检查是否选择了选项,如果没有选择则选择默认值。
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没有默认选择的选项,那么.val()是未定义的
将选择框上的事件更改为触发,一旦发生,则只需拉出所选选项的id属性即可:-
$("#type").change(function(){
var id = $(this).find("option:selected").attr("id");
switch (id){
case "trade_buy_max":
// do something here
break;
}
});