借助我在此处找到的答案,我尝试禁用提交按钮并在点击时发送提醒消息,直到检查不到至少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');
}
});
});
此时,只有警报信息有效。
编辑:添加小提琴
答案 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');
}
});