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

时间:2013-05-30 14:01:44

标签: javascript jquery

借助我在此处找到的答案,我尝试禁用提交按钮并在点击时发送提醒消息,直到检查不到至少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');
        }
    });
});

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

Fiddle

编辑:添加小提琴

3 个答案:

答案 0 :(得分:3)

HTML中没有enabled属性。

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

您还需要在每个selected重新计算change的值,您不能只选择在页面加载时设置的内容。

答案 1 :(得分:1)

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

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

应该在验证功能内,而不是在外面。

答案 2 :(得分:1)

您应该将代码更改为

$('#frmCompare :checkbox').change(function(){

  //update selected variable
  selected = $('#frmCompare :checkbox:checked').length

  if (selected >= 2) {
     $('#btnCompare').attr('enabled');
  }
});