2017-06-03 159 views
2

我有一个复选框和两个单选按钮。 关于收音机其中一个改变事件,我正在复选框的选中属性为真。 它只能使用一次。单选按钮更改事件后未复选复选框

Demo

步骤复制它, 1,点击难看(复选框被选中) 2.取消选中的复选框 3.toggel顺便说一句难看和良好(无效果:(

用完的一很多时间在这一点,但无法弄清楚是怎么回事

回答

1

更新您的代码如下:

  1. 使用prop()方法代替attr()方法来更新checked属性。
  2. 通常绑定更改事件处理程序并根据所选的单选按钮值更新属性。

// or select based on the name attribute 
 
// `$('input[type=radio][name="gender"]')` 
 
$('input[type=radio]').on('change', function() { 
 
    $('.xyz').prop('checked', this.value == 'bad'); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="vehicle" value="Car" class="xyz"> I have a car<br> 
 

 

 
<input type="radio" name="gender" value="good"> Good Oned<br> 
 
<input type="radio" name="gender" value="bad"> Ugly<br>

+0

感谢@pranav,它工作,但为什么我们必须绑定每个单选按钮的事件,这不是浏览器的额外工作? (也只是为了安心:))为什么我的代码不起作用我的意思是说,当用户选择“坏”时,我们是真的吗? – 92sharmasaurabh

+0

@ 92sharmasaurabh:你没有取消选中你的代码中的复选框,......并使其工作,你需要使用'prop()'或'.attr('checked','checked')' –

1

试试这个,如果条件.clicked单选按钮值是坏的点击真正被别的false出现在检查ATTR。你应该使用prop()方法,而不是attr

更新

为什么不工作?
你选择错了。你有$('input[type=radio][value = "bad"]')。其选择唯一的价值差的无线电 按钮不是两个。所以只有当你点击其他单选按钮,复选框 没有选中

$(document).ready(function() { 
 
    $('input[type=radio]').on('change', function() { 
 
    $('.xyz').prop('checked', $(this).val().trim() == 'bad'); 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script data-require="jquery" data-semver="3.1.1" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 

 
<input type="checkbox" name="vehicle" value="Car" class="xyz"> I have a car<br> 
 
<input type="radio" name="gender" value="good"> Good Oned<br> 
 
<input type="radio" name="gender" value="bad"> Ugly<br><br>

+0

谢谢@prasad,它工作,但为什么我们必须为每个单选按钮绑定事件,这不是浏览器的额外工作? (也只是为了安心:))为什么我的代码不起作用我的意思是说,当用户选择“坏”时,我们是真的吗? – 92sharmasaurabh

+0

是不是一个额外的工作.Beacuse没有绑定事件。你不能够找到值是坏的或其他什么 – prasanth

+0

*为什么我的代码不工作*因为你的选择器是错误的。你有'$('input [type = radio] [value =“bad”]')'.its只选择坏的单选按钮值不是为了这两个。所以只有当你点击其他单选按钮时复选框没有被选中 – prasanth