单击整个父div的任意点时更改单选按钮输入

时间:2015-11-30 18:11:55

标签: jquery html input radio-button checked

我使用无线电输入作为交换机来交替显示在我的网站上的语言。无线电输入有一个“.switch”类,它由父div“.switch-block”包装。我想要实现的是当点击父div的任何一点(.switch-block,以下jsfiddle上的彩色部分)时,输入状态也会改变。

我的jquery代码无效:

$('.switch-block').click(function(){
     $( ".switch" ).change();
});

这是我对jsfiddle的尝试: https://jsfiddle.net/9ev9s6h2/

3 个答案:

答案 0 :(得分:0)

$('.switch-block').click(function(){
     if($( ".switch" ).attr("checked"))
        $( ".switch" ).attr('checked', true);
     else
        $( ".switch" ).attr('checked', false);
});

做这样的事情。

答案 1 :(得分:0)

 $('.switch-block').click(function (e) {
     var $target = $(e.target);
     if (!($target.is(':radio'))) {
         $(this).find('input:radio:NOT(:checked)').prop('checked', true)
     }
 });

你可以试试这个。

  1. 将click事件附加到容器。
  2. 抓住目标,如果目标是广播,那么您只需采取默认操作。
  3. 如果目标元素不是无线电,则将未检查的无线电的道具更改为checked = true。
  4. https://jsfiddle.net/usq5gb96/

答案 2 :(得分:0)

根据您的HTML,此代码有效:

$('.switch-block').click(function(){
    $fr=$("#switch-fr");
    $en=$("#switch-en");
     if($en.is(":checked")) {
        $en.prop('checked', true);
     } else if($fr.is(":checked")) {
        $fr.prop('checked', true);
     }
   console.log($(this).find("input:radio:checked").val());
});

正如您在console.log中看到的那样,它选择了正确的语言选择 这是一个有效的fiddle