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%の最大値です。このように、max5を下回ることはありません。

于 2012-04-14T10:01:05.767 に答える