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

How to enable submit button if at least two checkboxes are checked?

本文关键字:何启用 启用 按钮 提交 复选框 两个 如果      更新时间:2023-09-26

在这里找到的答案的帮助下,我尝试禁用提交按钮并在点击它时发送警报消息,直到至少有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);

你还需要重新计算selected在每个change的值,你不能只是去与它被设置为页面加载

在第一次解析脚本时初始化选中复选框的计数。计数以后不会重新计算。这条线:

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

应该在验证函数内,而不是在验证函数外。

您应该将代码更改为

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