当前位置:  开发笔记 > 编程语言 > 正文

检查是否使用jQuery选择了选项,如果没有选择默认值

如何解决《检查是否使用jQuery选择了选项,如果没有选择默认值》经验,为你挑选了6个好方法。

使用jQuery,如何检查在选择菜单中是否选择了选项,如果没有,则将其中一个选项指定为选中.

(选择是在我刚刚继承的应用程序中使用迷宫般的PHP函数生成的,所以这是一个快速解决方案,而我可以解决这些问题:)



1> Joe Lencioni..:

虽然我不确定你想要完成什么,但这段代码对我有用.





选择将更容易阅读:`$("#mySelect").val(3);`
从jQuery 1.6开始,您可以直接设置属性.`$("#mySelect").prop("selectedIndex",2)`
这让我走上正轨,但我需要这样做:`$("#mySelect option")[2] ['selected'] = true;`在调查Firebug中的对象结构后想出来.

2> FlySwat..:

不需要为此使用jQuery:

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


OP说,"使用jQuery ......"所以忽略它似乎是多余的,不是吗?
有时你寻求的答案不是你期望的答案.
就个人而言,如果我问一个具体的问题,我想得到问题的答案而不是另一种方式.
这样做的好方法,有时基础javascript可以很方便!
无论如何,他要求jQuery,并且jQuery的答案更容易理解,特别是如果一个人不理解基础JavaScript.

3> Gavin..:

这个问题已经很久了,并且有很多观点,所以我只想把一些东西放在那里,这将有助于一些我确定的人.

要检查select元素是否包含任何选定项:

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有许多不同的方法来完成同样的事情,所以你通常只选择哪一个看起来效率最高.



4> Alexander Pe..:

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

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



5> 小智..:

这是我改变所选选项的功能.它适用于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');   
}



6> 小智..:

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有