safari 3 的一个bug : 关于select的 (我怀疑这个bug我是全球首发)

在给gt grid编写editor时发现的 safari 版本 3.0.4

这个bug 简单点说就是,
当select下的所有option的 selected属性都是 false时,
大多数浏览器 都会将 选项指向上次选择的项,而safari会生造出一个空的option来,
而且这种情况不是总发生, 什么时候发生 什么时候不发生不好说 看后面的代码注释吧

演示文件见附件


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<script type="text/javascript">
function init(selectObj) {

// 对于s1 safari的做法和其他浏览器一致, 都是默认选中第一个
selectObj=document.getElementById('s1');
for (var i=0; i<selectObj.options.length; i++) {
selectObj.options[i].selected=false;
}


// 对于s2 safari的做法就出现问题了, 会生造出一个
selectObj=document.getElementById('s2');
for (var i=0; i<selectObj.options.length; i++) {
selectObj.options[i].selected=false;
}

alert(selectObj.value) // 注意这个alert.


// 对于s3 safari的做法本来应该和 s2 一样 但是由于多了一个上面的alert, 一切又不同额 FT!!!!
// 如果你把上面的 alert 注释了 那么 s3 和 s2 完全一样

selectObj=document.getElementById('s3');
for (var i=0; i<selectObj.options.length; i++) {
selectObj.options[i].selected=false;
}
}
</script>

</head>

<body onload="init();">
<select id="s1">
<option value="1" selected="selected" >aaaa</option>
<option value="2">bbb</option>
<option value="3">ccc</option>
</select>

<br/><br/>

<select id="s2">
<option value="11" >zzz</option>
<option value="22">xxxx</option>
<option value="33">ccc</option>
</select>


<br/><br/>

<select id="s3">
<option value="111" >bbb</option>
<option value="222">nnn</option>
<option value="333">mmm</option>
</select>

</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值