纠正jQuery获取radio选中值的写法

本文通过一个具体的示例对比了$(input[name='aaa'][checked]).val()与$(input[name='aaa']:checked).val()两种不同选择器在获取radio按钮选中值时的区别,并给出了适用于多种浏览器的有效解决方案。

先看一段代码

<input type="radio" name="aaa" value="1" checked="true">aaa
    <input type="radio" name="aaa" value="2">bbb
    <input type="radio" name="aaa" value="3">ccc

    <input type="button" value="ok" onclick="doTest()">
    <script language="JavaScript">
    <!--
  function doTest(){
    alert($("input[name='aaa'][checked]").val());
  }
    //-->
</script>

网上流行的说法就是

$(input[name='aaa'][checked]).val()

能取到选中项的value,但我测试后发现只在IE下有效,在firefox和Chrome中不论选中哪一项,或者不选,取到的值都是第一项的value
正确做法应该是

$("input[name='aaa']:checked").val()

同样对于checkbox也是这种写法

以上出自 “厚土常丰” 博客,请务必保留此出处http://xwebos.blog.51cto.com/3398850/642888

 

下文为楼主自己测试出来的方法:

function getAll() {
var str = "";
$("[name='chk'][checked]").each(function() {
str += $(this).val() + ",";
})
pagerForm.chkFlag.value = str;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值