关于checkbox多选框的一些问题

WEB菜鸟
  • 276

1.为啥我全选和取消只能生效一次,无法循环使用?
2.为啥我的反选判断失效???
3.代码如下:
HTML:

  <form action="#" method="post" id="fomOne">
        你爱好的运动是?
        <br>
        <br>
        <input type="checkbox" name="items" id="checkedAll" value="篮球"> 篮球
        <input type="checkbox" name="items" id="" value="足球"> 足球
        <input type="checkbox" name="items" id="" value="乒乓球"> 乒乓球
        <input type="checkbox" name="items" id="" value="羽毛球"> 羽毛球
        <br>
        <br>
        <input type="button" value="全选" id="checkAll">
        <input type="button" value="全不选" id="checkNo">
        <input type="button" value="反选" id="checkRev">
        <input type="submit" value="提交" id="sub">
    </form>

JS代码:

    //复选框应用:
    $('#checkAll').click(function () {
        $('input:checkbox').attr('checked',true);
    })
    $('#checkNo').click(function () {
        $('input:checkbox').attr('checked',false);
    })
    $('#checkRev').on('click',function () {

        if($('input:checkbox').is('checked',true)){

            $('input:checkbox').attr('checked',false)

        }else{

            $('input:checkbox').attr('checked',true)

        }

    })
回复
阅读 2.1k
2 个回答
Danjy
  • 221
✓ 已被采纳

jquery的用法不对.去看下 attr的文档吧
http://www.css88.com/jqapi-1....

把attr换成 prop就可以了
顺手帮你改了代码

$('#checkAll').click(function() {
  $('input:checkbox').prop('checked', true);
})
$('#checkNo').click(function() {
  $('input:checkbox').prop('checked', false);
})
$('#checkRev').on('click', function() {
  $('input:checkbox').each(function(ind) {
    $(this).prop('checked', !$(this).prop('checked'))
  })
})

具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()

补充一下,其实你用attr也可以,但是取消勾选的时候要用removeAttr('checked')

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏