无法限制要选择的复选框的数量

时间:2016-12-08 14:41:03

标签: javascript php jquery html checkbox

我使用foreach循环生成表单中的复选框。它在下面给出。

<?php $index = 0;
foreach($cameramen as $n_key){ ?>
    <div class="checkbox">
        <label>
            <input type="checkbox" id="cameramen_<?php echo $index+1; ?>" name="cameramen" class="subscriber" value="<?php echo $index+1; ?>">

            <?php 
                echo $n_key->emplist3; 
                $index++;
            ?>

        </label>
    </div>
    <br/><br/>
<?php } ?>  

我想将用户选择的复选框数量限制为两个。 我使用了以下javascript函数,但它不起作用(它允许选择所有复选框)。

 $("input[name=cameramen]").change(function(){
    var max= 2;
    console.log($("input[name=cameramen]:checked").length);
    if( $("input[name=cameramen]:checked").length == max ){
        $("input[name=cameramen]").attr('disabled', 'true');
        $("input[name=cameramen]:checked").removeAttr('disabled');
    }else{
         $("input[name=cameramen]").removeAttr('disabled');
    }
  });

有人请帮助我解决这个问题,这个问题我几个小时都在努力解决。

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

$(document).ready(function(){  

	$(".cb").on('click', function(e) {
  	var count = 0;
  	var list = $('.cb');
    
    $('.cb').each(function(i) {
    	
      if($(this).is(':checked')) {
      	count++;
      }
      
    });
    
    if(count > 2)
    {
    	alert('You cannot check more than 2 checkboxes!');
    	$(this).prop('checked', false);
      
      //return false;
    } else {
    	return true;
    }
    
  });

});  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>

  <input class="cb" type="checkbox">Checkbox 1
  <br />
  <input class="cb" type="checkbox">Checkbox 2
  <br />
  <input class="cb" type="checkbox">Checkbox 3
  <br />
  <input class="cb" type="checkbox">Checkbox 4

</div>

希望这有帮助!