解决在IE下label中点击img图片无法选中radio的方案

例如,这样的代码
 <input type="radio" name="radio" id="a" /><label for="a"><img src="/Labs/images/logo.gif" /></label> 


这种情况下,点击label的图片将无法选中radio选项。解决这个问题,目前可以有三种方法,分别是通过JS、CSS或者HTML代码3个方面来解 决。

方法一,JS:

window.onload = function(){
if(document.all && navigator.appVersion.indexOf("MSIE")>-1 && navigator.appVersion.indexOf("Windows")>-1) {
var a = document.getElementsByTagName("label");
for(var i=0,j=a.length;i<j;i++){
console.log(a[i].childNodes.item(0).tagName)
if(a[i].hasChildNodes && a[i].childNodes.item(0).tagName == "IMG")
{
a[i].childNodes.item(0).forid = a[i].htmlFor;
a[i].childNodes.item(0).onclick = function(){
var e = document.getElementById(this.forid);
switch(e.type){
case "radio": e.checked|=1;break;
case "checkbox": e.checked=!e.checked;break;
case "text": case "password": case "textarea": e.focus(); break;
}
}
}
}
}
}


方法二,CSS:

在图片上覆盖一个容器,容器本身透明显示

html:
<input type="radio" name="radio" id="a" /><label for="a"><img src="xxx.jpg" /><span></span></label>


将其中SPAN的属性设定有底色并且透明,SPAN覆盖到IMG上,并保持和图片同样的尺寸。
css:
display:block;
width:100px;
height:100px;
background:url(xxx.png) no-repeat 0 0;
position:absolute;
left:0;
top:0;


方法三,THML代码控制:

在IMG中加一个属性,disabled 即可。

三种方法都是可行的解决方案,从实用方面,当然是第三种方法最简单,操作和实施起来最快,兼容性也好。问题是,以上仅仅是这种情况下的解决方法,如果从经验方面,三种方法都有自己的优势。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值