checkbox 之只选中一个时 ,不勾选问题

12 篇文章 0 订阅
9 篇文章 0 订阅
解决在查询传值时只允许选中一个checkbox而不勾选的问题,通过jQuery实现单选功能,并探讨jQuery中prop()与attr()的使用区别。当使用attr('checked', true)可能导致未勾选状态,而prop()适用于处理固有属性如checkbox的checked。" 125752972,13179825,R语言读取FASTQ文件错误排查,"['R语言', '生物信息学', '数据读取']
摘要由CSDN通过智能技术生成

在有些查询传值问题时需要勾选,有些人一直问为什么不用rediobutton,而用checkbox,这是为了解决,不选择时,传空,而查询时,rediobutton是必须选择一个的,我们需要传空值,而不要必须传默认值
1.html

<div style="margin-bottom: 20px;margin-top: 20px">
  <form  action="" method="post">
  <div class="input-append">
 <label class="checkbox inline">
  <input type="checkbox" value="1"> 按天    </label>
<label class="checkbox inline">
  <input type="checkbox"  value="2">按月
</label>
<label class="checkbox inline">
  <input type="checkbox" value="3"> 按年
</label>

    <input type="text" class="span2 search-query" placeholder="商品名称">
    <button type="submit" class="btn btn-info">搜索</button>
  </div>
</form>

</div>

2.js

(":checkbox").click(function(){(":checkbox").removeAttr("checked");
(this).prop(checked,true);alert( (this).val());
});

3.如果用attr(‘checked’,true) 时会出现没有勾选框的情况,这是因为
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。
关于它们两个的区别,网上的答案很多,其实很简单:
对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
举个栗子:

栗子中,a元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,a元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。使用prop方法取值和设置属性值时,都会返回undefined值。

现在再说说我们之前那个栗子,也就是checkbox的问题。


像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。
而如果使用attr:

(“#test_check1”).attr(“checked”) == undefined(“#test_check2”).attr(“checked”) == “checked”

而如果使用prop,则正常:

(“#test_check1”).prop(“checked”) == false(“#test_check2”).prop(“checked”) == true

所以归根到底就是attr和prop的区别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值