根据第一次下拉,第二个应该是可见的。它适用于所有浏览器但不适用于IE(所有版本)

时间:2012-01-20 05:58:28

标签: javascript html

为什么以下代码在IE(所有版本)中不起作用?

我有2个下拉菜单。第二个下拉列表应根据第一个显示。这适用于所有浏览器,但不适用于任何版本的IE。请帮帮我。这段代码中的错误是什么?

   <html>
   <style type="text/css">
    #navMenu {
    margin: 70px;
    padding: 40px;
         }
     #navMenu select {
    color: #000;
    background: #CD5C5C;
    font-size: 15px;
    font-weight: bold;
    padding: 2px 10px;
    width: 200px;
    font-family:"Calibri",cursive;
    text-align:center;
         }
   p.hiddenMenu {
    display: none;
            }
   p.visibleMenu {
    display: inline;
            }
  </style>

       <script type="text/javascript">
          var lastDiv = "";
          function showDiv(divName) 
          {
             if (lastDiv)
             {
               document.getElementById(lastDiv).className = "hiddenMenu";
             }   
          if (divName && document.getElementById(divName)) 
             {
               document.getElementById(divName).className = "visibleMenu";
               lastDiv = divName;
             }
           }
        </script>


  <body bgcolor="#87CEFA">
  <div id="wrapper">
    <div id="navMenu">
        <select name="category" id="statename" onchange="showDiv(this.value);">
            <option value="-1"><b>--Select State--</b></option>
            <option>one</option>
            <option>two</option>
            <option>three</option>
            <option>four</option>
            <option>five</option>
            <option>six</option>
            <option>seven</option>
        </select>
        <br class="clearFloat" /></br>

        <form id="aform">
            <p id="one" class="hiddenMenu">
                <select id="mymenu" size="1">
                    <option value="">--select--</option>
                    <option value="http://google.com">one selected</option>
                    <option value="http://google.com">two selected</option>
                </select>
        </form>
        </p>
        <script language="javascript">
            var selectmenu=document.getElementById("mymenu")
            selectmenu.onchange=function()
            {
               var chosenoption=this.options[this.selectedIndex]
               if (chosenoption.value!="nothing")
               {
                  window.open(chosenoption.value,"_parent")
               }
            }
        </script>

 </div></div>
 </body>
 </html 

1 个答案:

答案 0 :(得分:1)

在非IE浏览器中this.value如果没有与options标记关联的值attr,则获取标签值。但在IE中,它将是一个空字符串。

你可以这样使用:

<option value="one">one</option>