限制用户检查jQuery中的复选框

我有一堆复选框,我想限制用户根据selectbox值检查复选框。

例如,如果用户在selectbox中选择值-3,那么他只能检查3个复选框(任意三个)

演示: 小提琴

HTML

 1 2 3 4 5 6 






我怎样才能做到这一点? 请有人帮帮我吗?

如果你的意思是选项val = 3 – >可以检查3个复选框,那么试试这个http://jsfiddle.net/HNmhL/9/

使用Javascript

 $(document).ready(function(){ $('#count').on('change', function(){ $('input[type=checkbox]').prop('checked', false); }); $('input[type=checkbox]').on('change', function(){ if($('input[type=checkbox]:checked').length > $('#count').val()){ $(this).prop('checked', false); } }); }); 

根据Pavlo的有用评论进行了更新

演示: http //jsfiddle.net/HNmhL/23/

JQuery的

 // Cache the selector var checkBoxes = $('input[type=checkbox]'); checkBoxes.click(function() { validateCheckboxes(); }); $('#count').change(function() { // Only neave the first N items checked (where N = number of items allowed) checkBoxes.filter(':checked:gt(' + ($(this).val() - 1) + ')').attr('checked', false); validateCheckboxes(); }); function validateCheckboxes() { // If the number of checked items exceeds the number allowed if (checkBoxes.filter(':checked').length >= $('#count').val()) { // Disable all un-checked boxes... checkBoxes.not(':checked').attr('disabled', true); } else { // We haven't hit out limit yet; make sure the checkboxes are still enabled checkBoxes.attr('disabled', false); } }; 

用这个

 $('input[id^="checkbox-"]').hide(); $('select').on('change', function (e) { var valueSelected = this.value; for(i=1;i<=valueSelected;i++) { $('#checkbox-' + i).show(); } }); 

这可以使用非常少的代码在单个条件检查中完成:

 $('input[type=checkbox]').on('click', function(event){ if($('div.checkbox input[type=checkbox]:checked').length > $('#count').val()) { event.preventDefault(); } }); 

看看这个小提琴的例子。