Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏()不在IE中工作_Javascript_Jquery_Internet Explorer_Jquery Ui - Fatal编程技术网

Javascript 隐藏()不在IE中工作

Javascript 隐藏()不在IE中工作,javascript,jquery,internet-explorer,jquery-ui,Javascript,Jquery,Internet Explorer,Jquery Ui,我的代码在firefox中运行完美,在IE中出现错误。有什么想法吗 我有一个包含各种选项的下拉列表,我试图根据所选值在另一个下拉列表中显示/隐藏选项 function selectNames() { var Name = $("#SelectName").attr("value"); $("."+Name).each(function() { $(this).hide(); }); } 确保关闭“开始”标记。尝试使用以下方法: <select>

我的代码在firefox中运行完美,在IE中出现错误。有什么想法吗

我有一个包含各种选项的下拉列表,我试图根据所选值在另一个下拉列表中显示/隐藏选项

function selectNames() {
var Name = $("#SelectName").attr("value");
 $("."+Name).each(function() {
   $(this).hide();            
 });
}

确保关闭“开始”标记。尝试使用以下方法:

<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>

.

我建议您选择两个选项来显示和隐藏。显示和隐藏选项听起来很危险

另外,请确保将隐藏选择设置为attr'disabled','disabled'/disabled=disabled,然后在取消隐藏时使用removeAttr'disabled'撤消该选项。这是为了防止隐藏的select在您有多个具有相同名称的select时向服务器发布数据=


如果必须使用单选,则可能需要附加/删除选项,但这取决于您自己。如果“显示/隐藏”在所有浏览器中都有效,请使用它。

您的标记不正确。您发现每个选项打开标记未正确关闭

此外,规范没有指定对单个选项标记的CSS更改,尽管它在Firefox上可以工作

简单地说,您不能隐藏单个输入-在这种情况下,您必须删除它们

它在IE和Chrome中不起作用

您可以做的最佳选择是删除该选项,而不是将其隐藏。在删除之前,您应该保留原始选项的副本

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

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

如果这是直接复制粘贴,则需要关闭选择选项,如下所示:

<option value="Name1">Name1</option>
<option value="Name2">Name2</option>
可悲的是,你就是不能。 IE不支持在选择中隐藏单个选项,无论是Chrome还是Opera。 此功能不是跨浏览器的


您可以做的是删除该选项,然后再添加它…

您能提供给我们的有关错误的详细信息吗?您会得到错误或意外的输出吗?另请参阅:,这表明隐藏选项不适合跨浏览器使用。@justkt:忽略我以前的评论-您是对的:-乍一看,您的选项标记格式不正确。也许这就是原因?为什么?ie不支持隐藏?@腐蚀-它不支持在选择中隐藏单个选项。这不是跨浏览器功能,请参见。