解決在IE下label中IMG圖片無法選中radio的幾個方法


今天遇到一個問題,在IE瀏覽器下,使用label FOR radio后,label中的圖片無法選中。例如,這樣的代碼 <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++){
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:

在圖片上覆蓋一個容器,容器本身透明顯示

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

將其中SPAN的屬性設定有底色並且透明,SPAN覆蓋到IMG上,並保持和圖片同樣的尺寸。

display:block;
width:100px;
height:100px;
background:url(xxx.png) no-repeat 0 0;
position:absolute;
left:0;
top:0;

方法三,THML代碼控制:

在IMG中加一個屬性,disabled 即可。

三種方法都是可行的解決方案,從實用方面,當然是第三種方法最簡單,操作和實施起來最快,兼容性也好。問題是,以上僅僅是這種情況下的解決方法,如果從經驗方面,三種方法都有自己的優勢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM