2014-01-26 22 views
2

我有一组三个单选按钮与一组三个图像相连 - 即{image1,radioBtn1},{image2,radioBtn2},{image3,radioBtn3}。“Javascript”中的单选按钮集

我试图做到以下几点:当我点击一个图像,连接到该按钮的单选按钮变成“检查”自动(例如:当我点击图像3,radioBtn3将被选中)

我试过下面的代码:

HTML:

<input type="radio" id="radioBtb1" name="subject"/><a href="#"><img id="image1" src="../image/img3.png" height="150px"/></a> 
<input type="radio" id="radioBtb2" name="subject"/><a href="#"><img id="image2" src="../image/img3.png" height="150px"/></a> 
<input type="radio" id="radioBtb3" name="subject"/><a href="#"><img id="image3" src="../image/img3.png" height="150px"/></a> 

的Javascript:

function selectSubject(){ 
    if(document.getElementById('image1')) 
     document.getElementById(radioBtb1).checked=true; 
    if(document.getElementById('personal')) 
     document.getElementById(radioBtb2).checked=true; 
    if(document.getElementById('image3')) 
     document.getElementById(radioBtb3).checked=true; 
} 

但这并没有奏效。

+1

圣格式...所以你想有3个按键,有3张图片,并且只图像应该改变根据您选择的按钮? –

+0

如果您创建标签并根据需要在每个标签上设置背景图像,会更容易。那你就不需要任何JS了。 –

+0

单选按钮。当我按下一张图像时,连接到此图像的录音按钮将更改为已检查。 –

回答

6

使用<label>标签可以很容易地做到这一点。只需使用以下语法:

<label> 
    <input type="radio" id="radioBtb1" name="subject"/> 
    <img id="image1" src="../image/img3.png" height="150px"/> 
</label> 
<label> 
    <input type="radio" id="radioBtb2" name="subject"/> 
    <img id="image2" src="../image/img3.png" height="150px"/> 
</label> 
<label> 
    <input type="radio" id="radioBtb3" name="subject"/> 
    <img id="image3" src="../image/img3.png" height="150px"/> 
</label> 

,它会自动做正是你所期待的。

+4

值得一提的是,您也可以将'

+1

他不是只想要一次显示一个......吗? –

+0

哦,我被推迟了。向后阅读....哈哈哈。以为他的意思是单选按钮点击=图片显示。 –

0

如果你还想用javascript来做,你可以这样做。我做到了,所以你可以看到发生的一切。

检查this working fiddle

window.onload = function() { 

    var image1 = document.getElementById('image1'); 
    var image2 = document.getElementById('image2'); 
    var image3 = document.getElementById('image3'); 

    image1.addEventListener('click',runmewhenclicked); 
    image2.addEventListener('click',runmewhenclicked); 
    image3.addEventListener('click',runmewhenclicked); 

}; 

function runmewhenclicked() { 

    var id = this.id; 

    if(id == "image1") 
    { 
     document.getElementById("radioBtb1").checked = true; 
    } 
    else if(id == "image2") 
    { 
     document.getElementById("radioBtb2").checked = true; 
    } 
    else if(id == "image3") 
    { 
     document.getElementById("radioBtb3").checked = true; 
    } 
}; 
+0

您只提供了一半的代码。你为什么不做另一半呢? – Joeytje50

+0

对不起,我按了很快发布! – 8bitcat

+0

您现在错过了一个关闭'}'。另外,为什么更改格式?在你的'onload'函数中,你把'{'和'()'放在同一行,但对于'runmewhenclicked'和'if's,你把它放在一个单独的行上。 – Joeytje50