如果选中至少两个复选框,如何启用提交按钮?

在我在这里找到的答案的帮助下,我尝试禁用提交按钮并在点击它时发送警告消息,直到检查不到至少2个复选框。

我做错了什么?

var selected = $('#frmCompare :checkbox:checked').length; function verifCompare() { if (selected >= 2) { //good $('#frmCompare').submit(); } else { //bad alert('Veuillez selectionner au moins 2 produits à comparer...'); return false } } $(document).ready(function () { $('#btnCompare').attr('disabled', 'disabled'); $('#frmCompare :checkbox').change(function () { //alert(selected); if (selected >= 2) { $('#btnCompare').attr('enabled'); } }); }); 

此时,只有警报消息有效。

小提琴

编辑:添加小提琴

HTML中没有enabled属性。

 $('#btnCompare').prop('disabled', selected < 2); 

您还需要重新计算每次changeselected的值,您不能只是在页面加载时使用它设置的内容。

首次解析脚本时,只需初始化已选中复选框的计数一次。 计数不会在以后重新计算。 这一行:

 var selected = $('#frmCompare :checkbox:checked').length; 

应该在validationfunction内,而不是在外面。

您应该将代码更改为

 $('#frmCompare :checkbox').change(function(){ //update selected variable selected = $('#frmCompare :checkbox:checked').length if (selected >= 2) { $('#btnCompare').attr('enabled'); } });