2013-08-25 48 views
2

如何將圖片添加到單選按鈕?我希望單選按鈕本身消失並換成圖像。另外我該如何做到這一點,以便當圖像被點擊時,它會被翻轉或變暗,對於每個問題,讓用戶知道哪張圖片被選中?如何將圖片添加到單選按鈕

<!DOCTYPE html> 
<html> 
<head> 


</head> 
<body> 

<script> 
function tryToMakeLink() 
{ 
    //get all selected radios 
    var q1=document.querySelector('input[name="q1"]:checked'); 
    var q2=document.querySelector('input[name="q2"]:checked'); 
    var q3=document.querySelector('input[name="q3"]:checked'); 
    //make sure the user has selected all 3 
    if (q1==null || q2==null ||q3==null) 
    { 
     document.getElementById("linkDiv").innerHTML="--"; 
    } 
    else 
    { 
     //now we know we have 3 radios, so get their values 
     q1=q1.value; 
     q2=q2.value; 
     q3=q3.value; 
     //now check the values to display a different link for the desired  
configuration 
     if (q1=="AT&T" && q2=="8GB" && q3=="Black") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>att 8gb black</a>"; 
     } 
     else if (q1=="Other" && q2=="8GB" && q3=="White") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>other 8b 
white</a>"; 
     } 
     else if (q1=="AT&T" && q2=="16GB" && q3=="White") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>another  
option</a>"; 
     } 
     else if (q1=="AT&T" && q2=="16GB" && q3=="Black") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>oops</a>"; 
     } 
     else if (q1=="AT&T" && q2=="8GB" && q3=="White") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>can't</a>"; 
     } 
     else if (q1=="Other" && q2=="8GB" && q3=="Black") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>yours</a>"; 
     } 
     else if (q1=="Other" && q2=="16GB" && q3=="White") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>mines</a>"; 
     } 
     else if (q1=="Other" && q2=="16GB" && q3=="Black") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>what</a>"; 
     } 
     else if (q1=="Unlocked" && q2=="8GB" && q3=="White") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>red</a>"; 
     } 
     else if (q1=="Unlocked" && q2=="8GB" && q3=="Black") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>orange</a>"; 
     } 
     else if (q1=="Unlocked" && q2=="16GB" && q3=="White") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>green</a>"; 
     } 
     else if (q1=="Unlocked" && q2=="16GB" && q3=="Black") 
     { 
      document.getElementById("linkDiv").innerHTML="<a href=#>blue</a>"; 
     } 
    } 
} 
</script> 

<form name="quiz" id='quiz'> 

What carrier do you have? 
<ul style="margin-top: 1pt"> 
    <li><input type="radio" onclick=tryToMakeLink(); name="q1" value="AT&T"/>AT&T</li> 
    <li><input type="radio" onclick=tryToMakeLink(); name="q1" 
value="Other"/>Other</li> 
    <li><input type="radio" onclick=tryToMakeLink(); name="q1" 
value="Unlocked"/>Unlocked</li> 
</ul> 

What is your phones capicity? 
<ul style="margin-top: 1pt"> 
    <li><input type="radio" onclick=tryToMakeLink(); name="q2" value="8GB"/>8GB</li> 
    <li><input type="radio" onclick=tryToMakeLink(); name="q2" value="16GB"/>16GB</li> 
</ul> 

What color is your phone? 
<ul style="margin-top: 1pt"> 
    <li><input type="radio" onclick=tryToMakeLink(); name="q3" 
value="Black"/>Black</li> 
    <li><input type="radio" onclick=tryToMakeLink(); name="q3" 
value="White"/>White</li> 
</ul> 

<br> 
<div id=linkDiv> 
--- 
</div> 
</form> 
</body> 

回答

0

爲了很好地解決了圖像的單選按鈕,這裏有一個很好的問題: How do I style radio buttons with images - laughing smiley for good, sad smiley for bad?

對於你的問題的第二部分,你想使用CSS3濾鏡效果,但那些還沒有廣泛提供。同時,您可能需要考慮在圖像周圍使用邊框。所以,在鼠標點擊時,給它一個5像素的紅色邊框,或者一些突出的東西。

此外,在您的輸入標籤上,我建議您不要在標籤上放置onclick。相反,在js中嘗試以下內容:

var inputs = document.querySelectorAll("input[type=radio]"); 
inputs.onClick = function(){...} 

您的代碼最終會變得更清晰。

+0

我試過這段代碼,但它不適合我。你能提供一個例子嗎? – user2680614

+0

首先,我必須將querySelector()更改爲querySelectorAll()。這將返回每個單選按鈕,而不僅僅是第一個單選按鈕。 (var i = 0; i itsmikem

+0

...另外,您可能希望

相關問題