2014-01-26 2 views
2

У меня есть набор из трех переключателей, связанных с набором из трех изображений - то есть {image1, radioBtn1}, {image2, radioBtn2}, {image3, radioBtn3}.Набор переключателей в «Javascript»

Я пытаюсь сделать следующее: Когда я нажимаю на одном изображении, кнопка радио подключена к этой кнопке, чтобы включить «проверили» автоматически (например: при нажатии на image3, 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

радиокнопки. Когда я нажимаю на одно изображение, кнопка redio, связанная с этим изображением, будет изменена на отмеченную. –

ответ

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

О, я отставлен. Прочтите его назад .... ха-ха-ха. Думал, он имел в виду радиокнопку click = показ изображения. –

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

Смежные вопросы