js高手进,求select BUG解决方案

leebin1986 2011-01-17 04:53:06
select框在IE7及以下版本如果设定select的width为固定值,如果option中内容宽度超过设置值,则会发生弹出框(就是点下select后显示内容的框框)显示不全的BUG,在FF,CHROME等则会自动设定为auto,内容可以正常显示,看了网上各种解决办法,都不是很理想(比如focus时用js设置select宽度为auto,blur时再恢复),会造成元素位置跳动,用户体验不加,最后还是自己用js创建iframe来模拟select弹出框,问题来了,怎么把select原来的弹出框隐藏掉?
...全文
218 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crazywa 2011-01-19
  • 打赏
  • 举报
回复
滚动条直接overflow:auto; 超出部分自动出现滚动条。
leebin1986 2011-01-18
  • 打赏
  • 举报
回复
还有个问题,怎么模拟滚动条?
Crazywa 2011-01-17
  • 打赏
  • 举报
回复
既然是模拟的话,干脆直接模拟全了被,还要那个select干嘛?直接用div做个,用隐藏域提交呗。
Crazywa 2011-01-17
  • 打赏
  • 举报
回复

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

这个?
leebin1986 2011-01-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 crazywa 的回复:]

display:none 不就没有了么?
你嫌碍事儿一定要眼不见心不烦,就removeChild
[/Quote]
这位朋友你可能没理解我的意思,我不是要隐藏select控件,而是要隐藏点击select控件后弹出的框框
Crazywa 2011-01-17
  • 打赏
  • 举报
回复
display:none 不就没有了么?
你嫌碍事儿一定要眼不见心不烦,就removeChild
leebin1986 2011-01-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 leebin1986 的回复:]
select框在IE7及以下版本如果设定select的width为固定值,如果option中内容宽度超过设置值,则会发生弹出框(就是点下select后显示内容的框框)显示不全的BUG,在FF,CHROME等则会自动设定为auto,内容可以正常显示,看了网上各种解决办法,都不是很理想(比如focus时用js设置select宽度为auto,blur时再恢复),会造成元素位置跳动,用户体验不加,最后还是……
[/Quote]
CSS限制IE下会出现宽度BUG。。
leebin1986 2011-01-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kingwolf_javascript 的回复:]

用js创建iframe来模拟select弹出框,问题来了,怎么把select原来的弹出框隐藏掉?
既然使用iframe来模拟select弹出框,把select原来的弹出框删除不就行了
[/Quote]
问题就是怎么删除原来的弹出框。。。。
浴火_凤凰 2011-01-17
  • 打赏
  • 举报
回复
用js创建iframe来模拟select弹出框,问题来了,怎么把select原来的弹出框隐藏掉?
既然使用iframe来模拟select弹出框,把select原来的弹出框删除不就行了
shenzhenNBA 2011-01-17
  • 打赏
  • 举报
回复
可以用CSS限制,试看...

<select tyle="width:120px"> ....

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧