1

我正在尝试清除表单中的所有复选框,然后在一个函数中提交表单,但表单似乎在未选中复选框之前已提交。有没有办法通过回调来做到这一点,还是有另一种方法完全可以解决这个问题?

该函数如下所示:

function clear_checkboxes() {
    $(".addtomailer").attr('checked', false);
    $('#addresses').submit();
    return false;
}

该函数使用表单按钮调用,.addtomailer 是所有复选框的类,#addresses 是表单 ID。

(我确实发现了很多问题,询问如何执行此操作,但所有提问者实际上都在尝试测试项目何时加载,所以这个问题从未真正得到回答)

更新:使用最新版本的 jQuery。

4

2 回答 2

0

尝试使用.prop而不是.attr

$(".addtomailer").prop('checked', false);

通常,当“属性”是布尔值时使用“prop”。(选中、禁用、选中等)。“attr”没有正确刷新元素的状态。

http://api.jquery.com/prop/

于 2012-09-08T22:26:30.243 回答
0

您需要checked从每个复选框中删除属性并将其值设置为 false。

    $(".addtomailer").removeAttr('checked').val(false);
于 2012-09-08T22:30:00.273 回答