jQuery按钮以取消选中复选框

9
这项任务看起来很简单,但是我的代码却不能正常工作。
我有一个带有一些行的表格,每一行都有一个复选框,在下面放置了一个“全部移除”的按钮以取消所有复选框的选择。
这是我的代码:
    $('#remove-button').click(function(){
        $('input:checked').prop('checked',false);
        //e.stopPropagation(); // I tried also with this
        // $('input:checked').removeAttr('checked'); // or this syntax
    });

当我点击按钮时,所有输入框都未被选中,但这不是由于我的代码造成的,因为当我注释掉这段代码时,同样会发生当我点击按钮时所有输入框都未被选中的情况。我还注意到当我点击并取消勾选输入框时,网站似乎会刷新,因为页面会向上滚动。
我还添加了另一个按钮来选中输入框:
    $('#add-button').click(function(e){
        $('input').prop('checked',true);
        //e.stopPropagation(); // I tried also with this
        // $('input:checked').removeAttr('checked'); // or this syntax
    });

当我点击提交时,输入框会被检查,然后网页在一秒钟内刷新并且所有内容都消失了。
我使用最新版本的Firefox和Chrome浏览器,以及jQuery-1.11(但也测试过1.8.0和1.7.1)。
还附有相关文件。
有人知道出了什么问题吗?

还附带了CSS文件href="http://yui.yahooapis.com/pure/0.4.2/pure-min.css"。 - kuba0506
你的按钮是什么类型?它们是“提交”类型吗? - worldask
不,那些按钮没有type属性,但我也尝试过使用type="submit"。 - kuba0506
//当复选框被选中时,启用/禁用删除按钮 var checkBoxes = $(':checkbox'); checkBoxes.change(function(){ $('#remove-button').prop('disabled',checkBoxes.filter(':checked')。length <1); }); checkBoxes.change(); - kuba0506
好的,现在一切都正常了,谢谢大家!! - kuba0506
显示剩余4条评论
1个回答

7

'checked'属性是布尔类型,但当它不存在时,它的值为false。 如果您不想在点击时提交或不想跳转到链接,则需要使用e.preventDefault()。 因此,您需要这样做:

 $('#remove-button').click(function(e) {
    $('input:checked').removeAttr('checked');
    e.preventDefault();
 });
 $('#add-button').click(function(e) {
   var input = $('input.input-to-check')
   input.attr('checked', 'checked');
   e.preventDefault();
 });

你救了我的命。谢谢。 - Ashiquzzaman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接