允许在复选框限制脚本中进行最小选择

allow a minimum selection in a checkboxes limiting script

本文关键字:选择 脚本 复选框      更新时间:2023-09-26

我有一个限制复选框选择的javascript代码。

它采用给定页面中的复选框数量,只允许选中其中的 30%。

这是代码:

function chkcontrol(j) {
  var length = document.forms['form1'].elements['item[]'].length;
  var max = Math.round(length * 0.3);
  var total = 0;
  for(var i = 0; i < length; i++){  
    if(document.forms['form1'].elements['item[]'][i].checked){
      total = total + 1;
    }
    if(total > max){
      alert("MAX 33%") ;
      document.forms['form1'].elements['item[]'][i].checked = false ;
      return false;
    }
  }
}

它工作正常,但我想设置一个绝对的最小保证数量的复选框可选。

在简单的文本中,这是我尝试实现的规则:

  • 允许 30% 的复选框,如果 30% 的限制允许少于 5 个复选框 ->允许 5 个。

例:

页面中有 7 个复选框,只允许 2 个。(限制为 2,小于最小保证 5 -->脚本应将限制提高到允许 5)

任何想法如何做到这一点?在 php 中,一个简单的 IF 条件可以解决问题,但我不熟悉 javascript!

为什么不选择这样简单的东西:

var max = Math.max(5, Math.round(length * 0.3));

max 是 5 或计算的 30% 的最大值 - 这样,max永远不会小于 5。