如果选中至少两个复选框,如何启用提交按钮?
在我在这里找到的答案的帮助下,我尝试禁用提交按钮并在点击它时发送警告消息,直到检查不到至少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);
您还需要重新计算每次change
时selected
的值,您不能只是在页面加载时使用它设置的内容。
首次解析脚本时,只需初始化已选中复选框的计数一次。 计数不会在以后重新计算。 这一行:
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'); } });