Javascript 每个表单仅勾选2个复选框

Javascript 每个表单仅勾选2个复选框,javascript,jquery,html,forms,checkbox,Javascript,Jquery,Html,Forms,Checkbox,我在一个页面中有多个表单,输入名称相同。表单之间的唯一区别是包含它们的表单 对于表单上的复选框组,我只想允许选中三个复选框中的两个,但我不希望一个表单中的复选框影响另一个表单 我有一点我现在有的东西 我现在已经设置好了,三个复选框中只有两个可以签出,但这是针对整个文档的,而不是特定于表单的 我的页面中的表单是用循环创建的,表单id是它们之间唯一的区别 有人能帮忙吗 $('input[type=checkbox][name=group]')。关于('change',函数(e){ if($('i

我在一个页面中有多个表单,输入名称相同。表单之间的唯一区别是包含它们的表单

对于表单上的复选框组,我只想允许选中三个复选框中的两个,但我不希望一个表单中的复选框影响另一个表单

我有一点我现在有的东西

我现在已经设置好了,三个复选框中只有两个可以签出,但这是针对整个文档的,而不是特定于表单的

我的页面中的表单是用循环创建的,表单id是它们之间唯一的区别

有人能帮忙吗

$('input[type=checkbox][name=group]')。关于('change',函数(e){
if($('input[type=checkbox][name=group]:checked')。长度<2){
$('input[type=checkbox][name=group]:未(:checked')。prop('disabled',false);
}
if($('input[type=checkbox][name=group]:checked')。长度==2){
$('input[type=checkbox][name=group]:未(:选中)).prop('disabled','disabled');
}
});

表格一
表格二

这里有一个可行的解决方案。希望有帮助

$('input[type=checkbox][name=group]')。关于('change',函数(e){
if($('#form_1 input[type=checkbox][name=group]:checked')。长度==2){
$('#form_1 input[type=checkbox][name=group]:not(:checked)).prop('disabled','disabled');
}否则{
$('#form_1 input[type=checkbox][name=group]:not(:checked)).prop('disabled',false);
}
if($('#form_2 input[type=checkbox][name=group]:checked')。长度==2){
$('#form_2 input[type=checkbox][name=group]:未(:选中)).prop('disabled','disabled');
}否则{
$('#form_2 input[type=checkbox][name=group]:not(:checked)).prop('disabled',false);
}
});

表格一
表格二

这里有一个可行的解决方案。希望有帮助

$('input[type=checkbox][name=group]')。关于('change',函数(e){
if($('#form_1 input[type=checkbox][name=group]:checked')。长度==2){
$('#form_1 input[type=checkbox][name=group]:not(:checked)).prop('disabled','disabled');
}否则{
$('#form_1 input[type=checkbox][name=group]:not(:checked)).prop('disabled',false);
}
if($('#form_2 input[type=checkbox][name=group]:checked')。长度==2){
$('#form_2 input[type=checkbox][name=group]:未(:选中)).prop('disabled','disabled');
}否则{
$('#form_2 input[type=checkbox][name=group]:not(:checked)).prop('disabled',false);
}
});

表格一
表格二

使用函数初始化每个组的事件处理程序。也可以使用不同的组名

功能设置CheckBoxGroup(grpName){
$('input[type=checkbox][name='+grpName+']')。在('change',函数(e)上{
if($('input[type=checkbox][name='+grpName+']:checked')。长度<2){
$('input[type=checkbox][name='+grpName+']:未(:选中)).prop('disabled',false);
}
if($('input[type=checkbox][name='+grpName+']:checked')。长度==2){
$('input[type=checkbox][name='+grpName+']:未(:选中)).prop('disabled','disabled');
}
});
}
setupCheckboxGroup(“组”);
setupCheckboxGroup(“group2”)

表格一
表格二

使用函数初始化每个组的事件处理程序。也可以使用不同的组名

功能设置CheckBoxGroup(grpName){
$('input[type=checkbox][name='+grpName+']')。在('change',函数(e)上{
if($('input[type=checkbox][name='+grpName+']:checked')。长度<2){
$('input[type=checkbox][name='+grpName+']:未(:选中)).prop('disabled',false);
}
if($('input[type=checkbox][name='+grpName+']:checked')。长度==2){
$('input[type=checkbox][name='+grpName+']:未(:选中)).prop('disabled','disabled');
}
});
}
setupCheckboxGroup(“组”);
setupCheckboxGroup(“group2”)

表格一
表格二

由于表单是动态的,因此这可能会有更好的用途

我确实创建了一个JSFIDLE并将其发布在评论中,但这只适用于这两种形式。也许你想再加一点

用于定位触发函数的元素,
.parentNode
用于获取表单元素,
.id
用于获取表单id,因此您可以定位特定表单,这意味着您只需要一个
if
条件即可对所有表单运行此操作

$('forminput[type=checkbox][name=group]')。关于('change',函数(e){
var MyForm=this.parentNode.id;
if($('form[id='+MyForm+']input[type=checkbox][name=group]:checked')。长度==2){
$('form[id='+MyForm+']input[type=checkbox][name=group]:未(:选中)).prop('disabled','disabled');
}否则{
$('form[id='+MyForm+']input[type=checkbox][name=group]:未(:选中)).prop('disabled',false);
}
});

表格一
表格二

由于表单是动态的,因此这可能会有更好的用途

我确实创建了一个JSFIDLE并将其发布在评论中,但这只适用于这两种形式。也许你想再加一点

用于定位触发函数的元素,
.parentNode
用于获取表单元素,
.id
用于获取表单id,因此您可以定位特定表单,这意味着您只需要一个
if
条件即可对所有表单运行此操作

$('forminput[type=checkbox][name=group]')。关于('change',函数(e){
var MyForm=this.parentNode.id;
if($('form[id='+MyForm+']input[type=checkbox][name=group]:checked')。长度==2){
$('form[id='+MyForm+']input[type=checkbox][name=group]:未(:选中)).prop('disabled','disabled');
}否则{
$('form[id='+MyForm+']input[type=checkbox][name=group]:未(:选中)).prop('disabled',false);
}
});
this.parentNode.id;