2011-04-06 48 views
1

我的代码可以完美运行在Firefox和IE中给出了错误无法正常工作。有任何想法吗?隐藏()在IE

我有各种选项下拉,我试图显示基于所选值的另一个下拉/隐藏选项。

function selectNames() { 
var Name = $("#SelectName").attr("value"); 
$("."+Name).each(function() { 
    $(this).hide();    
}); 
} 
<select > 
    <option class="Name1" value="SomeName1" </option> 
    <option class="Name2" value="SomeName2" </option> 
</select> 
<select id="SelectName" onchange="javascript:selectNames();" > 
    <option value="Name1" </option> 
    <option value="Name2" </option> 
</select> 

任何帮助表示赞赏..

+0

任何细节上,你可以给我们的错误? – Argote 2011-04-06 17:20:31

+0

您收到错误或意外的输出? – 2011-04-06 17:21:47

+0

另请参见:[使用jQuery隐藏选择列表中的选项](http:// stackoverflow。com/questions/1271503/hide-options-in-a-select-list-using-jquery),这表明隐藏选项不是跨浏览器安全的。 – justkt 2011-04-06 17:22:02

回答

2

请务必关闭启动标签。尝试使用这个:

<select> 
    <option class="Name1" value="SomeName1" /> 
    <option class="Name2" value="SomeName2" /> 
</select> 
<select id="SelectName" onchange="javascript:selectNames();" > 
    <option value="Name1" /> 
    <option value="Name2" /> 
</select> 

Seems to work for me in IE8

0

我建议有两个选择,你显示和隐藏。显示和隐藏选项听起来有风险。

此外,请确保您将隐藏选择设置为attr('disabled','disabled')/disabled="disabled",然后当您取消隐藏它时,请使用removeAttr('disabled')撤消该选择。这是为了防止隐藏选择将数据发布到服务器,当您有多个选择相同的name="..."

如果您必须使用单个选择,您可能需要appendTo/remove选项,但这取决于您。如果显示/隐藏在所有浏览器中都能正常工作,那就去做吧。

1

您的标记是不正确的。你是每个选项开放标签没有正确关闭。

而且,规格不指定CSS更改个人选项标签,尽管它在Firefox上运行。

在简单的话,你不能隐藏个人输入 - 在这种情况下,你必须将其删除。

2

它不会在IE浏览器的Chrome &

check out in IE or Chrome

,你能做的最好的替代方法是删除选项,而不是隐藏它。(你应该保持一个删除它之前的原始选项的副本。)

var copy = $("."+Name).clone(); 
function selectNames() { 
    $("#thefirstselect option").remove(); 
    copy.appendTo("#thefirstselect"); 
    var Name = $("#SelectName").val(); 

    $("."+Name).each(function() { 
     $(this).remove();    
}); 
} 
1

如果这是一个直接的复制和粘贴,那么你需要关闭选择选项看起来像这样:

<option value="Name1">Name1</option> 
<option value="Name2">Name2</option> 
0

可悲的是,你不能。
IE不支持隐藏个别选项,无论是Chrome还是Opera。 此功能不是跨浏览器。

你可以做的是删除选项并再次添加它...

+0

whut?即不支持隐藏? – corroded 2011-04-06 17:56:05

+1

@corroded - 它没有,afaik,支持隐藏单个选项的选择。这不是一个跨浏览器的功能,请参阅[这里](http://stackoverflow.com/questions/1271503/hide-options-in-a-select-list-using-jquery)。 – justkt 2011-04-06 17:59:23

+0

@justkt,感谢您的链接......; D – NemoStein 2011-04-06 18:01:10