2013-11-14 4 views
0

У меня есть переключатель, что я хотел бы быть выбранным, если пользователь нажимает на div, внутри которого он находится. У меня есть событие click для div, но я не могу заставить его переключаться.check radio button Выбор родительского div?

Heres мой код:

var new_div = document.createElement('div'); 
     new_div.setAttribute('id', 'controlDiv'); 
     new_div.setAttribute('class', 'ansClass'); 
var newAnswer = document.createElement('input'); 
     newAnswer.setAttribute('type', 'radio'); 
     newAnswer.setAttribute('name', 'choice'); 
     newAnswer.setAttribute('class', 'radioButton'); 
     $(newAnswer).attr("id", "button"+j); 


     var newLabel = $("<label>", {id: "label"+j, class: "ansLabel", text: "answer"+j}); 


     $(new_div).append(newAnswer); 
     $(new_div).append(newLabel); 



$("#controlDiv").click(function() { 
    var radButton = $(this).find('input[type=radio]'); 
    radButton.click(); 
     // $(radButton).attr("checked", "checked"); 
}); 
+0

Попробуйте следующее: http://stackoverflow.com/questions/9525128/jquery-set-radio-button –

ответ

3

Попробуйте .prop() вместо .attr()

$("#controlDiv").click(function() { 
    var radButton = $(this).find('input[type=radio]'); 
    $(radButton).prop("checked", true); 
}); 
+0

спасибо! Работал как шарм. Почему поддержка будет лучше, чем attr? –

1

у меня будет такой же ответ на Аруна, за исключением того, модифицирована немного, чтобы позволить отключив, а также:

$('#controlDiv').click(function(){ 
    var radButton = $(this).find('input[type=radio]'); 
    if(radButton).is(':checked')){ 
    $(radButton).removeAttr('checked'); 
    } else { 
    $(radButton).attr('checked', 'checked'); 
    } 
}); 

Возможно, я сделаю шаг дальше и поставлю переключатель с определенным идентификатором. Если это один из многих, попробуйте пойти с классом. Это просто дает вам более конкретную информацию в вашей кодировке.

+0

Спасибо, что это сработает, но у меня есть кнопки в группах по 4, чтобы они автоматически отменяли выбор при нажатии другого. –

+0

Имеет смысл. Тогда решение Аруна - это хорошо! – alexjewell