select框在IE7及以下版本如果设定select的width为固定值,如果option中内容宽度超过设置值,则会发生弹出框(就是点下select后显示内容的框框)显示不全的BUG,在FF,CHROME等则会自动设定为auto,内容可以正常显示,看了网上各种解决办法,都不是很理想(比如focus时用js设置select宽度为auto,blur时再恢复),会造成元素位置跳动,用户体验不加,最后还是自己用js创建iframe来模拟select弹出框,问题来了,怎么把select原来的弹出框隐藏掉?

解决方案 »

  1.   

    可以用CSS限制,试看...<select tyle="width:120px"> ....
      

  2.   

    用js创建iframe来模拟select弹出框,问题来了,怎么把select原来的弹出框隐藏掉?
    既然使用iframe来模拟select弹出框,把select原来的弹出框删除不就行了
      

  3.   

    CSS限制IE下会出现宽度BUG。。
      

  4.   

    display:none 不就没有了么?
    你嫌碍事儿一定要眼不见心不烦,就removeChild
      

  5.   

    这位朋友你可能没理解我的意思,我不是要隐藏select控件,而是要隐藏点击select控件后弹出的框框
      

  6.   


    <select id="ss">
    <option>fff</option>
    <option>fff</option>
    <option>fff</option>
    <option>fff</option>
    </select>
    <script>
    var b = document.getElementById('ss');
    b.onclick = function(){
    this.blur();
    };
    </script>这个?
      

  7.   

    既然是模拟的话,干脆直接模拟全了被,还要那个select干嘛?直接用div做个,用隐藏域提交呗。
      

  8.   

    滚动条直接overflow:auto; 超出部分自动出现滚动条。