Jquery 使单选按钮的行为类似于复选框

Jquery 使单选按钮的行为类似于复选框,jquery,checkbox,radio-button,Jquery,Checkbox,Radio Button,出于与主题相去甚远的原因,我有一组2个单选按钮,我需要它们的行为像一个复选框。我的意思是,其中一个单选按钮将被隐藏,另一个需要能够被清除(实际上,检查隐藏的那个) 它看起来像这样: <ul id="id_member_field_request-demo-1"> <li> <label for="id_member_field_request-demo-1_0"><input type=&q

出于与主题相去甚远的原因,我有一组2个单选按钮,我需要它们的行为像一个复选框。我的意思是,其中一个单选按钮将被隐藏,另一个需要能够被清除(实际上,检查隐藏的那个)

它看起来像这样:

<ul id="id_member_field_request-demo-1">
    <li>
        <label for="id_member_field_request-demo-1_0"><input type="radio" name="member_field_request-demo-1" value="Please contact me to schedule a 60 minute, 1-on-1 demo" field_id="8394681" id="id_member_field_request-demo-1_0">Please contact me to schedule a 60 minute, 1-on-1 demo</label>
    </li>
    <li>
        <label for="id_member_field_request-demo-1_1"><input type="radio" name="member_field_request-demo-1" value="false" field_id="8394681" id="id_member_field_request-demo-1_1">false</label>
    </li>
</ul> 
不幸的是,单击可见单选按钮(
radio1
)总是返回选中状态。。。因此永远无法进入检查状态。我需要知道它以前是否被检查过

我能想到的唯一方法是将当前已检查的无线电保持在一个变量中,然后从那里开始。。。因此,我最终得出以下结论:

var radio1 = $('#id_member_field_request-demo-1_0');
var radio2 = $('#id_member_field_request-demo-1_1');

radio2.prop('checked', true).parent().css('display', 'block');

var checkedId = radio2.attr('id');
//console.log(checkedId);

radio1.click(function() {
  if(checkedId == radio1.attr('id')) {
    radio2.prop('checked', true);
    checkedId = radio2.attr('id');
  } else {
    checkedId = radio1.attr('id');
  }
});

这很有效-只是检查是否有更直接的方法?

我建议使用
.data()
保持内部选中状态

var radio1=$(“#id#member_field_request-demo-1_0”);
var radio2=$(“#id#member_field_request-demo-1_1”);
radio2.prop('checked',true).hide();
radio1.prop('checked',true).data('checked',true).show();
radio1.单击(函数(){
if($(this).data('checked')){
$(此).data('checked',false);
radio2.道具(“已检查”,正确);
}否则{
$(this.prop('checked',true.)。数据('checked',true);
}
console.log(“radio1=”,radio1.prop(“选中”),“radio2=”,radio2.prop(“选中”);
});

var radio1 = $('#id_member_field_request-demo-1_0');
var radio2 = $('#id_member_field_request-demo-1_1');

radio2.prop('checked', true).parent().css('display', 'block');

var checkedId = radio2.attr('id');
//console.log(checkedId);

radio1.click(function() {
  if(checkedId == radio1.attr('id')) {
    radio2.prop('checked', true);
    checkedId = radio2.attr('id');
  } else {
    checkedId = radio1.attr('id');
  }
});