检查选项是否被选择
检查选项是否被选择
可能是重复问题:
\n使用jQuery检查选项是否被选中,如果没有选中,则选择默认值 \n我有如下的html代码:\n
\n如何检查两个选择框中的选项是否被选中?\n编辑:我不能改变html,这意味着我不能为选择元素添加id。
问题的出现原因是代码中的判断条件有错误。当前的判断条件是检查两个select元素的value属性是否都不是"default",但实际上两个select元素的id分别是"sel1"和"sel2",而不是"sel1"两次。因此,判断条件永远为真,无法正确执行后续的操作。
解决方法是将判断条件中的"sel1"改为"sel2",这样就可以正确地检查第二个select元素的value属性是否为"default"。修改后的代码如下:
<script type="text/javascript"> $( function() { $( '#somedivid > select' ).bind( 'change', function(){ if( $( '#sel1').attr( 'value' ) != 'default' && $( '#sel2' ).attr( 'value' ) != 'default' ){ //do something here. } }); } ); </script> <div id="somedivid"> <select id="sel1"> <option value="default" selected="selected"></option> <!-- options --> </select> <select id="sel2"> <option value="default" selected="selected"></option> <!-- options --> </select> </div>
问题的原因是在下拉菜单中添加了一个空选项。解决方法是使用jQuery的.val()函数来检查选项是否被选中。如果没有id或者name属性,可以使用.each()函数来遍历所有的下拉菜单,并使用.val()函数来检查选项是否为空。以下是解决方法的代码示例:
if ($('#select1').val() && $('#select2').val()) { // both have selection }
如果没有id或者name属性,可以使用以下代码:
var allSelected = true; $('#somedivid select').each(function() { if (!$(this).val()) { allSelected = false; break; } });
请注意,如果没有id或者name属性,需要定义什么意味着选项被选中(例如空选项)。