Javascript 选中限制复选框,包括页面加载时选中的复选框

Javascript 选中限制复选框,包括页面加载时选中的复选框,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有几个复选框,其中一些已经在页面加载时被选中 我想做的是禁用其他复选框,如果选中了2个复选框 如果我自己选中/取消选中复选框,我的代码工作正常。但是,当页面加载时已经选中了两个框(使用javascript或HTML)时,仍然可以选中另一个框,直到禁用这些框为止 由于页面加载时已选中了两个复选框,因此其他复选框应被禁用,直到我取消选中其中一个复选框为止。目前情况并非如此 这是我的javascript: jQuery(function($) { var max = 2; var checkb

我有几个复选框,其中一些已经在页面加载时被选中

我想做的是禁用其他复选框,如果选中了2个复选框

如果我自己选中/取消选中复选框,我的代码工作正常。但是,当页面加载时已经选中了两个框(使用javascript或HTML)时,仍然可以选中另一个框,直到禁用这些框为止

由于页面加载时已选中了两个复选框,因此其他复选框应被禁用,直到我取消选中其中一个复选框为止。目前情况并非如此

这是我的javascript:

jQuery(function($) {

 var max = 2;
 var checkboxes = $('input[type="checkbox"]');

  checkboxes.change(function(){
      var current = checkboxes.filter(':checked').length;
      checkboxes.filter(':not(:checked)').prop('disabled', current >= max);
  });

   $('.one').attr('checked','checked');
   $('.two').attr('checked','checked');

});
在我的复选框下面:

        <div id="checkboxes">
                <input type="checkbox" class="1" id="checkbox" name='Some[array]' value="1"> 
                <input type="checkbox" class="2" id="checkbox" name='Some[array]' value="2"> 
                <input type="checkbox" class="3" id="checkbox" name='Some[array]' value="3"> 
                <input type="checkbox" class="4" id="checkbox" name='Some[array]' value="4"> 
        </div>

当页面加载时,只需启动
.change()
事件:

checkboxes.change(function () {
    var current = checkboxes.filter(':checked').length;
    checkboxes.filter(':not(:checked)').prop('disabled', current >= max);
}).change();

当页面加载时,只需启动
.change()
事件:

checkboxes.change(function () {
    var current = checkboxes.filter(':checked').length;
    checkboxes.filter(':not(:checked)').prop('disabled', current >= max);
}).change();

当页面加载时,只需启动
.change()
事件:

checkboxes.change(function () {
    var current = checkboxes.filter(':checked').length;
    checkboxes.filter(':not(:checked)').prop('disabled', current >= max);
}).change();

当页面加载时,只需启动
.change()
事件:

checkboxes.change(function () {
    var current = checkboxes.filter(':checked').length;
    checkboxes.filter(':not(:checked)').prop('disabled', current >= max);
}).change();

您的选择器错误,如果以编程方式更改值,
选中的事件将不会触发。但是,您可以手动触发更改事件,以在最初设置值时强制代码工作。使用以下两行:

$('.1').prop('checked','checked').change();
$('.2').prop('checked','checked').change();

选择器错误,如果以编程方式更改值,
checked
事件将不会触发。但是,您可以手动触发更改事件,以在最初设置值时强制代码工作。使用以下两行:

$('.1').prop('checked','checked').change();
$('.2').prop('checked','checked').change();

选择器错误,如果以编程方式更改值,
checked
事件将不会触发。但是,您可以手动触发更改事件,以在最初设置值时强制代码工作。使用以下两行:

$('.1').prop('checked','checked').change();
$('.2').prop('checked','checked').change();

选择器错误,如果以编程方式更改值,
checked
事件将不会触发。但是,您可以手动触发更改事件,以在最初设置值时强制代码工作。使用以下两行:

$('.1').prop('checked','checked').change();
$('.2').prop('checked','checked').change();

是的,这绝对是一个比我的好的解决方案。是的,这绝对是一个比我的好的解决方案。是的,这绝对是一个比我的好的解决方案。是的,这绝对是一个比我的好的解决方案。