0

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

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

小提琴

编辑:添加小提琴

4

3 回答 3

3

HTML中没有enabled属性。

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

您还需要重新计算selectedat every的值change,您不能只使用它在页面加载时设置的值。

于 2013-05-30T14:03:24.950 回答
1

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

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

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

于 2013-05-30T14:04:43.250 回答
1

您应该将代码更改为

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

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

  if (selected >= 2) {
     $('#btnCompare').attr('enabled');
  }
});
于 2013-05-30T14:05:20.697 回答