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

时间:2012-04-14 09:55:21

标签: 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%限制允许少于5个复选框,则允许30%的复选框和 - >允许5。

示例:

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

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

1 个答案:

答案 0 :(得分:2)

为什么不采用简单的方式:

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

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