用法:
我的表单有一个选择下拉列表,由另一个选择下拉列表控制。在加载页面时(如果之前选择的值,PHP加载它们)选择下拉列表#2隐藏了几个选项(这是有效的)。使用选择下拉列表#1选择特定选项时,选择下拉列表#2隐藏选项变为可用(.show(),这样可行)。
问题:(概述问题的示例:http://jsfiddle.net/RqhbY/7/)
当隐藏选项显示/可用且选择了一个时,然后选择下拉列表#1更改隐藏选项的下拉列表#2中的值,在提交时,将提交所选的隐藏值。
如何取消选择/重置现在隐藏的选定选项?
答案 0 :(得分:4)
尝试更改:
$('select[name=two[0]] option').attr('selected', false);
使用:
$('select[name=two[0]] option').removeAttr('selected');
<强>更新
好的,我在IE 8中测试了上面的代码,并且仍然选择了禁用的<option>
。但这似乎有效:
$('select[name=two[0]]').children('option').removeAttr('selected').filter(':nth-child(1)').attr('selected', true);
演示:http://jsfiddle.net/RqhbY/9/
请注意,您可能希望将.filter()
来电更新为仅选择非禁用选项,但我会留给您。
<强>更新
如果您在.attr('selectedIndex', -1)
元素上致电<select>
,则无法选择<option>
。下拉列表不会显示值,而是显示为空白。