-1

我试图取消选中一个单选按钮,如果它被选中,同样检查一个单选按钮,如果它没有被选中。但是,它总是说它在没有被检查时被检查。

这是我的代码:

$('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

但似乎没有任何效果。

我怎样才能让它工作?

4

4 回答 4

1

这是小提琴希望这对我有帮助:

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

        });
于 2013-09-25T15:22:24.877 回答
0

您需要删除属性选中以取消选中,并添加属性以选中单选按钮。不要给它赋值:

<input type="radio" name="radio1">
<input type="radio" name="radio1" checked>

利用:

$(this).addAttr("checked") 
$(this).removeAttr("checked")
于 2013-09-25T15:09:31.077 回答
0

这永远不会失败,但这是一种不同的方法。定位父母,并返回检查了哪个收音机,而不是查看所有收音机。只是一个想法

var myRadio;
$('#radioParent input:radio').click(function() {
    myRadio = $(this).attr('id');
    //console.log(myRadio);
    //return myRadio;
});
于 2013-09-25T15:17:12.783 回答
0

我不知道为什么这会收到反对票。单选按钮的用法是让您可以选择 0 或 1 个选项,如果您需要选择 0 或多个选项,则使用复选框列表。但是,如果您想撤消对可选问题的单选按钮选择怎么办?

我通过在名为“数据检查”的单选按钮上创建另一个属性来解决这个问题。

下面是实现:

$('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);
     });
 });
于 2014-04-04T19:15:55.937 回答