Javascript 如果至少选中了两个复选框,如何启用“提交”按钮?
在这里找到的答案的帮助下,我尝试禁用submit按钮,并在单击它时发送警报消息,直到没有选中至少两个复选框为止 我做错了什么Javascript 如果至少选中了两个复选框,如何启用“提交”按钮?,javascript,jquery,Javascript,Jquery,在这里找到的答案的帮助下,我尝试禁用submit按钮,并在单击它时发送警报消息,直到没有选中至少两个复选框为止 我做错了什么 var selected = $('#frmCompare :checkbox:checked').length; function verifCompare() { if (selected >= 2) { //good $('#frmCompare').submit(); } else { //b
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');
}
});
});
此时,只有警报消息起作用
编辑:添加了fiddleHTML中没有启用的
属性
$('#btnCompare').prop('disabled', selected < 2);
$('btnCompare').prop('disabled',selected<2);
您还需要在每次更改时重新计算所选的值,您不能只按照页面加载时设置的值进行操作。HTML中没有启用的属性
$('#btnCompare').prop('disabled', selected < 2);
$('btnCompare').prop('disabled',selected<2);
您还需要在每次更改时重新计算所选的值,您不能只按照页面加载时设置的值进行操作。在首次解析脚本时,只需初始化一次复选框计数。稍后将不会重新计算计数。这一行:
var selected = $('#frmCompare :checkbox:checked').length;
应该在验证函数内部,而不是外部。在首次解析脚本时,只需初始化一次复选框计数。稍后将不会重新计算计数。这一行:
var selected = $('#frmCompare :checkbox:checked').length;
应该在验证功能内部,而不是外部。您应该将代码更改为
$('#frmCompare :checkbox').change(function(){
//update selected variable
selected = $('#frmCompare :checkbox:checked').length
if (selected >= 2) {
$('#btnCompare').attr('enabled');
}
});
您应该根据需要更改代码
$('#frmCompare :checkbox').change(function(){
//update selected variable
selected = $('#frmCompare :checkbox:checked').length
if (selected >= 2) {
$('#btnCompare').attr('enabled');
}
});
请显示HTML。什么样的控件是#frmCompare
和#btnCompare
?@Hogan:#frmCompare
是我表单的名称,#btnCompare
添加了submit按钮文件,以帮助我查看发生了什么?我不相信该文件与您的代码相同,因为该文件不显示警报消息,您声称该消息与您的代码一起工作。请显示HTML。什么样的控件是#frmCompare
和#btnCompare
?@Hogan:#frmCompare
是我表单的名称,#btnCompare
添加了submit按钮文件,以帮助我查看发生了什么?我不相信小提琴与您的代码相同,因为小提琴没有显示警报消息,并且您声称该消息与您的代码一起工作。您只在小提琴中实现了代码更改。您没有将select
的计算移动到onchange
事件中。在代码中,select
的值将始终是加载页面时的值。您只在小提琴中实现了代码更改。您没有将select
的计算移动到onchange
事件中。在代码中,select
的值将始终是加载页面时的值。