1

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

4

1 回答 1

2

为什么不使用这样简单的东西:

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

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

于 2012-04-14T10:01:05.767 回答