0

だから私は次のスクリプトを使用しようとしています:

//Limit of checked checkboxes    
function checkboxlimit(checkgroup, limit){
  var checkgroup=checkgroup
  var limit=limit
  for (var i=0; i<checkgroup.length; i++){
    checkgroup[i].onclick=function(){
      var checkedcount=0
      for (var i=0; i<checkgroup.length; i++)
          checkedcount+=(checkgroup[i].checked)? 1 : 0
      if (checkedcount>limit){
        alert("You can only select a maximum of "+limit+" checkboxes")
        this.checked=false
      }
    }
  }
}

//change bg color if checked 
var seleccionado=new Array()
function cambia(fila){
  if(seleccionado[fila]!=true)
  {
    document.getElementById("fila"+fila).style.background='#A5FA9B';
    document.getElementById("fila"+fila).style.color='#FFFFFF';
    seleccionado[fila]=true;
  }
  else
  {
    document.getElementById("fila"+fila).style.background='#FFF3D6';
    document.getElementById("fila"+fila).style.color='#000000';
    seleccionado[fila]=false;
  } 
}

したがって、最初の関数は選択できるチェックボックスの数を制限し、2 番目の関数はチェックされたセルの背景色を変更します。HTML は次のようになります。

<form id="main" name="main" method="POST">
  <font face="verdana">
    <table>
      <tr  >
        <td  id="fila1">FIRST<input name="ckb" onclick="cambia(1)" type="checkbox"/></td>
        <td  id="fila2">SECOND<input name="ckb" onclick="cambia(2)" type="checkbox"/></td>
        <td  id="fila3">THIRD<input name="ckb" onclick="cambia(3)" type="checkbox"/></td> 
    </table>
  </font>
</form>

最後に、次のスクリプトを追加する必要があります。

<script type="text/javascript">
  checkboxlimit(document.forms.main.ckb, 1);
</script>

現在、どちらも単独で完全に機能しますが、それらを組み合わせると、チェックボックスの数を制限するものだけが機能します. それらを連携させる方法はありますか?

4

2 に答える 2

0

なぜ 2 つの別々の関数を作成する必要があるのですか? 関数を 1 つだけ呼び出して、そこに引数を入れてみることができます。

于 2013-10-19T20:15:34.967 に答える