代码之家  ›  专栏  ›  技术社区  ›  Josh Curren

隐藏/取消隐藏在IE、Safari和Chrome中不起作用的Div JavaScript函数

  •  0
  • Josh Curren  · 技术社区  · 15 年前

    <style> 
        .hidden { display: none; }
        .unhidden { display: block; }
    </style> 
    
    <script type="text/javascript"> 
    function hideDiv(divID) {
      var item = document.getElementById(divID);
      item.className='hidden';
    }
    
    function showDiv(divID) {
      var item = document.getElementById(divID);
      item.className='unhidden';
    }
    </script> 
    
    <select name="addressHomeSameAsMailing" style="width:320px; height:25px;"> 
                    <option>Please Select One</option>
                    <option value="Y" onClick="hideDiv('hideAddress')" <?php if( $_POST['addressHomeSameAsMailing'] == 'Y' ) echo " selected "; ?> >Yes</option>
                    <option value="N" onClick="showDiv('hideAddress')" <?php if( $_POST['addressHomeSameAsMailing'] == 'N' ) echo " selected "; ?> >No</option>
    </select>
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   Pat    15 年前

    onclick处理程序不一致地应用于 <option> 跨浏览器标记。为了解决这个问题,您可以将onchange处理程序添加到 <select>

    HTML格式

    <select name="addressHomeSameAsMailing" onchange="toggleDiv(this, 'hideAddress')">
        <option value="">Please Select One</option>
        <option value="none">Hide</option>
        <option value="block">Show</option>
    </select>
    
    <div id="hideAddress">
        123 Fake St.
    </div>
    

    Javascript语言

    function toggleDiv(elem, id) {
        if (elem.value == '') return;
    
        var div = document.getElementById(id);
        if (div && div.style) div.style.display = elem.value;
    }
    

    你可以 see what I mean here