重置/取消选择选择选项

用法:

我有一个具有选择下拉列表的表单,该下拉列表由另一个选择下拉列表控制。 在加载页面时(如果之前选择的值,PHP加载它们)选择下拉列表#2隐藏了几个选项(这是有效的)。 使用选择下拉列表#1选择特定选项时,选择下拉列表#2隐藏选项变为可用(.show(),这样可行)。

问题:(概述问题的一个例子: http : //jsfiddle.net/RqhbY/7/ )

当显示/可用隐藏选项并选择一个时,然后选择下拉列表#1更改隐藏选项的下拉列表#2中的值,在提交时,将提交所选隐藏值。

如何取消选择/重置现在隐藏的选定选项?

http://jsfiddle.net/RqhbY/8/

尝试改变:

$('select[name=two[0]] option').attr('selected', false); 

有:

 $('select[name=two[0]] option').removeAttr('selected'); 

UPDATE

好的,我在IE 8中测试了上面的代码,仍然选择了禁用的 。 但这似乎有效:

 $('select[name=two[0]]').children('option').removeAttr('selected').filter(':nth-child(1)').attr('selected', true); 

演示: http : //jsfiddle.net/RqhbY/9/

请注意,您可能希望更新.filter()调用以仅选择非禁用选项,但我会留给您。

UPDATE

如果在元素上调用.attr('selectedIndex', -1) ,则无法 。 下拉列表不会显示值,但会显示为空白。

演示: http : //jsfiddle.net/RqhbY/10/