jquery操作radio标签的选中事件

速记。

任务要求: 如下图,选择活动类型1出现“活动1-1”和“活动1-2”,类型2则是出现活动2的选项。

但是选择后都需要给到默认选项。正常情况下,页面中会有默认checked=“check”选中项,所以要先移除这个属性,再对想要的选项作选中操作。

 

<label class="comm-config-label">活动名称</label>
<div class="fn-left">
    <input class="cname-radio open-type 1-1-type" type="radio" name="cptName" value="1" checked="check">
    <span class="open-type">活动1-1</span>
    
    <input class="cname-radio no-open-type" type="radio" name="cptName" value="2">
    <span class="no-open-type">活动1-2</span>
    
    <input class="cname-radio open-type 2-1-type" type="radio" name="cptName" value="3" style="display:none;">
    <span class="open-type" style="display:none;">活动2-1</span>
    
    <input class="cname-radio no-open-type" type="radio" name="cptName" value="4" style="display:none;">
    <span class="no-open-type" style="display:none;">活动2-2</span>
</div>

jquery操作:重点在于对默认项的选中操作,移除input中的checked属性,再对默认项作选中操作,这里用了eq(index)这个方法,比较有效,要注意这里的index下标是从0开始。还有就是prop的属性操作,用传统的attr()会偶有失常。

<script type="text/javascript">
$(".pub-radio").change(function(){
    var radioVal = $("input[name='pubType']:checked").val();
    if(radioVal == '1'){
        $(".open-type").hide();
        $(".no-open-type").show();
         //默认选项
        $("input[name='cptName']").removeAttr('checked'); 
        $($("input[name='cptName']").eq(1)).prop('checked',true);
     }
     if(radioVal == '2'){
         $(".no-open-type").hide();
         $(".open-type").show();
         //默认选项
         $("input[name='cptName']").removeAttr('checked'); 
         $($("input[name='cptName']").eq(0)).prop('checked',true);
      }
});
</script>

 

转载于:https://my.oschina.net/u/2428684/blog/685914

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值