我试图取消选中一个单选按钮,如果选中它,同样检查一个单选按钮是否未选中。但是,它总是说它不会被检查。
这是我的代码:
$('input[type=radio]').on('click', function() {
if ($(this).attr('checked') == 'checked') {
$(this).attr('checked', false);
} else {
$(this).attr('checked', true);
}
});
上面的代码总是命中if的第一部分。我也试过了
$(this).is(':checked')
和
$(this).val()
和
$(this).attr('checked') == true
但似乎没有任何效果。
我怎样才能让它发挥作用?
答案 0 :(得分:1)
以下fiddle希望此myt帮助:
<input type="radio" name="" value="1000" align="middle" id="private_contest">1000 is the value<br>
<input type="radio" name="" value="2000" align="middle" id="private_contest">2000 is the value
和相关的jquery是:
$('input[type=radio]').on('click', function () {
$(this).siblings().prop('checked', true);
$(this).prop('checked', false);
});
答案 1 :(得分:0)
您需要删除已选中的属性以取消选中,并添加该属性以检查单选按钮。不要为其赋值:
<input type="radio" name="radio1">
<input type="radio" name="radio1" checked>
使用:
$(this).addAttr("checked")
$(this).removeAttr("checked")
答案 2 :(得分:0)
这应该永远不会失败,但这是一种不同的方法。 定位父母,并返回检查哪个无线电,而不是查看所有无线电。 只是一个想法
var myRadio;
$('#radioParent input:radio').click(function() {
myRadio = $(this).attr('id');
//console.log(myRadio);
//return myRadio;
});
答案 3 :(得分:0)
我不确定为什么会收到负面投票。单选按钮的使用使您可以选择0或1个选项,如果需要选择0或多个选项,则会显示复选框列表。但是,如果要撤消可选问题的单选按钮选择,该怎么办?
我通过在名为&#34;数据检查&#34;的单选按钮上创建另一个属性来解决这个问题。
以下是实施:
$('input[type=radio]').on('click', function() {
var radioButton = $(this);
var radioButtonIsChecked = radioButton.attr('data-checked') == 'true';
// set 'checked' to the opposite of what it is
setCheckedProperty(radioButton, !radioButtonIsChecked);
// you will have to define your own getSiblingsAnswers function
// as they relate to your application
// but it will be something similar to radioButton.siblings()
var siblingAnswers = getSiblingAnswers(radioButton);
uncheckSiblingAnswers(siblingAnswers);
});
function uncheckSiblingAnswers(siblingAnswers) {
siblingAnswers.each(function() {
setCheckedProperty($(this), false);
});
}
function setCheckedProperty(radioButton, checked) {
radioButton.prop('checked', checked);
radioButton.attr('data-checked', checked);
}
在页面加载时,将data-checked属性设置为true或false,具体取决于它是否已被选中。
$(document).ready(function() {
$('input[type=radio]').each(function () {
var radioButton = $(this);
var radioButtonIsChecked = radioButton.attr('checked') == 'checked';
setCheckedProperty(radioButton, radioButtonIsChecked);
});
});