Javascript隐藏IE中不工作的选择框元素

Javascript隐藏IE中不工作的选择框元素,javascript,internet-explorer,forms,Javascript,Internet Explorer,Forms,嘿,我不确定我是不是走对了路。我有两个不同的选择框。需要做的是,当框1中的某个项目被选中时,框2中的某些项目被隐藏。我所做的在FF中很好,但在IE…思想中不起作用 <div> <label class="form_label">Apparel</label> <select id="Choices" size="1" style="clear: right;" onchange"changeThis();">

嘿,我不确定我是不是走对了路。我有两个不同的选择框。需要做的是,当框1中的某个项目被选中时,框2中的某些项目被隐藏。我所做的在FF中很好,但在IE…思想中不起作用

<div>  
    <label class="form_label">Apparel</label>  
    <select id="Choices" size="1" style="clear: right;" onchange"changeThis();">  
        <option value="select">Pick Your Product</option>  
        <option value="1">choice 1</option>  
        <option value="2">choice 2/option>  
        <option value="3">choice 3</option>  
    </select>
</div>
<div>
    <label class="form_label">Size</label>
    <select id="Sizes" size="1" style="clear: right;">
        <option value="select">Choose Your Size</option>
        <option value="SC">Small Child</option>
        <option value="IC">Intermediate Child</option>
        <option value="MC">Medium Child</option>
    </select>
</div>

衣服
选择你的产品
选择1
选项2/选项>
选择3
大小
选择你的尺码
小孩
中间儿童
中等儿童

功能转换(选择)

{
var item=document.getElementById(“选项”);
var size=document.getElementById(“大小”);
var selitem=item.options[item.selectedIndex].value;
如果(selitem==“2546”)
{

对于(i=0;i请尝试使用此选项:

结果是:

size[i].style.visibility='hidden';
编辑


哦,欢迎使用StackOverflow!

尝试使用以下选项:

结果是:

size[i].style.visibility='hidden';
编辑


哦,欢迎使用StackOverflow!

这取决于您如何触发调用changeThing()函数的事件。IE9不太确定,但IE8和背面的onChange事件存在问题。它基本上避免了IE中的onClick。您必须改为使用onClick


如果您使用jQuery触发事件,onchange事件应该在所有浏览器(甚至IE)中都能正常工作。不确定其他Javascript库是如何做到这一点的。

这取决于您如何触发调用changeThing()的事件函数。不确定IE9,但IE8和背面的onChange事件有问题。它基本上避免了IE中的onChange事件。您将不得不使用onClick


如果您使用jQuery触发事件,onchange事件应该在所有浏览器(甚至IE)中都能正常工作。不确定其他Javascript库是如何工作的。

您需要完全删除此选项才能在IE中工作

大小。删除(i);


因此,您需要将选项存储在数组中,并在需要时将其加载回。

您需要完全删除此选项,以使其在IE中工作

大小。删除(i);


因此,您需要将选项存储在数组中,并在需要时将其加载回。

我几天前遇到了相同的问题。IE不允许对选项元素使用可见:隐藏或显示:无

您可以解决将select1的选项存储在变量中的问题。此变量将具有所有可能的值,因此,当select1的值更改时,您可以删除select2的所有值,然后从变量中获取所需的选项以放入select2

总结如下:

  • 将所有可能的值存储在变量中
  • 更改select1时,请删除select2的所有选项
  • 过滤您需要的选项(从步骤1的变量中获取这些值),并将其放入select2

  • 几天前我也遇到了同样的问题。IE不允许对选项元素使用可见:隐藏或显示:无

    您可以解决将select1的选项存储在变量中的问题。此变量将具有所有可能的值,因此,当select1的值更改时,您可以删除select2的所有值,然后从变量中获取所需的选项以放入select2

    总结如下:

  • 将所有可能的值存储在变量中
  • 更改select1时,请删除select2的所有选项
  • 过滤您需要的选项(从步骤1的变量中获取这些值),并将其放入select2

  • 您无法显示:none remove将完全删除它,如果您不希望用户选择它,请使用disabled

    function changeThing()
    {
    var item = document.getElementById("Choices");
    var size = document.getElementById("Sizes");
    var selitem = item.options[item.selectedIndex].value;
    
    if(selitem == '3')
    {
        for(i=1; i<2; i++) // filter logic here
        {
            size[i].disabled = true; //false - to reset
            //alert(size[i]);
        }
    }
    size.selectedIndex = 0; // reset the selection so a disabled item may not be selected. }
    
    函数更改()
    {
    var item=document.getElementById(“选项”);
    var size=document.getElementById(“大小”);
    var selitem=item.options[item.selectedIndex].value;
    如果(selitem==“3”)
    {
    
    对于(i=1;i您无法显示:none remove将完全删除它,如果您希望用户不选择它,请使用disabled。您可以这样做

    function changeThing()
    {
    var item = document.getElementById("Choices");
    var size = document.getElementById("Sizes");
    var selitem = item.options[item.selectedIndex].value;
    
    if(selitem == '3')
    {
        for(i=1; i<2; i++) // filter logic here
        {
            size[i].disabled = true; //false - to reset
            //alert(size[i]);
        }
    }
    size.selectedIndex = 0; // reset the selection so a disabled item may not be selected. }
    
    函数更改()
    {
    var item=document.getElementById(“选项”);
    var size=document.getElementById(“大小”);
    var selitem=item.options[item.selectedIndex].value;
    如果(selitem==“3”)
    {
    
    对于(i=1;i您可能会在上找到一些见解您可能会在上找到一些见解