【问题标题】:check radio button whe parent div is selected?选中父 div 时检查单选按钮?
【发布时间】:2013-11-26 20:26:12
【问题描述】:

我有一个单选按钮,如果用户单击其内部的 div,我希望可以选择该按钮。我有一个 div 的点击事件,但我似乎无法检查单选按钮。

这是我的代码:

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");
});

【问题讨论】:

标签: jquery html


【解决方案1】:

我会得到与 Arun 类似的答案,除了稍作修改以允许取消选中:

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

我可能会更进一步,为单选按钮提供一个特定的 ID。如果是其中之一,请尝试上课。这只会让您的编码更加具体。

【讨论】:

  • 谢谢,这可行,但我的按钮以 4 个为一组,因此当按下另一个按钮时它们会自动取消选择。
【解决方案2】:

尝试.prop() 而不是.attr()

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

【讨论】:

  • 谢谢!像魅力一样工作。为什么 prop 会比 attr 更好?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
  • 2016-05-09
  • 2013-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多