【发布时间】:2020-10-01 07:41:52
【问题描述】:
由于偏离主题的原因,我有一组 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>
到目前为止我有:
var radio1 = $('#id_member_field_request-demo-1_0');
var radio2 = $('#id_member_field_request-demo-1_1');
radio2.prop('checked', true).css('display', 'none');
radio1.click(function() {
if(radio1.is(':checked')) {
radio2.click();
}
});
不幸的是,单击可见单选按钮 (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');
}
});
这行得通 - 只是检查是否有更直接的方法?
【问题讨论】:
标签: jquery checkbox radio-button