radio 单选可取消

本文探讨了在使用jQuery处理HTML radio按钮时,如何通过结合attr和prop属性来实现取消选中功能的常见问题及解决方案。作者亲测prop获取checked状态和attr设置checked行为不一致,推荐使用attr记录选中状态,prop进行实际设置,以确保正确操作并避免常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

radio可取消操作,需要手动处理。网上的争论无非就是attr和prop的使用

亲测都有问题(比如多次选中取消不生效,有时需要点击两次才能选中等等),

关键点就是

.prop获取checked达不到预期

.attr设置checked达不到预期 得等

这里结合使用就没问题了(划重点:attr用来记录获取,prop用来设置)

html:

<label class="col-sm-2 control-label"><span style="color: red;margin-top:3px;"></span>选项</label>
<div class="col-sm-4">
    <div class="checkbox-inline" style="margin-left:0px">
        <input  type="radio" id="xx1"  name="xx" value="1" <c:if test="${xx.xx1 eq 'Y'}"> checked </c:if> style="font-size: 17px"/>选项1
    </div>
    <div class="checkbox-inline" style="margin-left:0px">
        <input  type="radio" id="xx2" name="xx" value="2" <c:if test="${xx.xx2 eq 'Y'}"> checked </c:if> style="font-size: 17px"/>选项2
    </div>
</div>

js:

$(document).ready(function () {
    $("input:radio[name=xx]").click(function(){
        var domName = $(this).attr('name');//获取当前单选框控件name 属性值
        var checkedState = $(this).attr('checked');//记录当前选中状态
        $("input:radio[name=xx]").attr('checked',false);
        $(this).prop('checked',false); //3.
        if(checkedState == 'checked'){
            $(this).prop('checked',false); //3.
            $(this).attr('checked',false); //3.
        }else{
            $(this).prop('checked',true); //3.
            $(this).attr('checked','checked'); //3.
        }
    });
  
});
取消选中radio单选按钮,可以通过以下几种方式实现: 1. 使用JavaScript: 可以通过JavaScript代码来取消选中radio单选按钮。首先,需要获取到该radio单选按钮的DOM元素,可以通过id、class或者其他属性来选取。然后,使用`checked`属性将其设为false即可取消选中。示例代码如下: ``` document.getElementById("radioId").checked = false; ``` 这里的"radioId"是具体radio单选按钮的id。 2. 使用jQuery: 如果网页中引入了jQuery库,可以使用更简洁的代码来取消选中radio单选按钮。首先,需要获取到该radio单选按钮的jQuery对象,可以通过id、class或者其他选择器来选取。然后,使用`prop()`方法将其选中属性设为false即可取消选中。示例代码如下: ``` $("#radioId").prop("checked", false); ``` 这里的"radioId"是具体radio单选按钮的id。 3. 利用HTML的`<form>`表单: 在HTML的`<form>`标签中,可以设定同一个name属性的radio单选按钮为同一组。当其中一个radio单选按钮被选中时,其他的单选按钮会被自动取消选中。因此,可以通过设置其他radio单选按钮为选中状态来达到取消选中的效果。示例代码如下: ``` <form> <input type="radio" name="radioGroup" value="1" checked>选项1<br> <input type="radio" name="radioGroup" value="2">选项2<br> <input type="radio" name="radioGroup" value="3">选项3<br> </form> ``` 以上代码中,设定了name属性为"radioGroup"的三个radio单选按钮为同一组。当选中其中一个按钮时,其他按钮会自动取消选中。 总之,通过JavaScriptjQuery或者HTML的`<form>`表单,可以很方便地取消radio单选按钮的选中状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值