проверить переключатель, если родительский div выбран?

0

У меня есть переключатель, который я хотел бы выбрать, если пользователь нажимает на div, внутри которого он находится. У меня есть событие click для 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");
});
Теги:

2 ответа

3
Лучший ответ

Попробуйте использовать .prop() вместо .attr()

$( "#controlDiv" ).click(function() {
    var radButton = $(this).find('input[type=radio]');
    $(radButton).prop("checked", true);
});
  • 0
    Спасибо! Работал как шарм. Почему реквизит должен быть лучше, чем атрибут?
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
    Имеет смысл. Решение Аруна хорошо, тогда!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню