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

标签 javascript

我有一个限制复选框选择的 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。

关于javascript - 允许在复选框限制脚本中进行最小选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10152670/

相关文章:

javascript - 为什么我的 Promise.race 实现不起作用?

javascript - 如何在javascript函数中添加一个变量

javascript - 将图库插件与图像放大功能插件集成

javascript - 如何从全局范围中切断函数

javascript - 如何使 dc.js 图表响应

javascript - Javascript-对象数组未按日期排序

javascript - 传单 map 似乎缺少建筑物。有什么选择?

javascript - 同源政策有问题

javascript - 使用 Javascript 类函数进行 15 次递归后堆栈溢出

javascript - Node js 在异步行为中丢失 : undefined