webForumDet fria alternativet
Logga in / Bli medlem

Ännu en fråga om checkbox

JavaScript

2 svar · 168 visningar · startad av Broms

Medlem sedan sep. 2002188 inlägg
Trådstart#1

Här har jag gjort ett script som checkar alla checkboxar samtidigt, genom att klicka i den lilla top-boxen,
det som jag vill ha ändrat, är så att om det bara finns en checkbox (förutom den lilla), skall den lilla checkboxen checkas i, när den större rutan kryssas.. någon som har en idé?

<script>

function checkAll() {
  var jar = document.form1;
  var bin = jar.elements.length;

  for(var i = 0 ; i < bin ; i++) {
      var e = jar.elements[i];
      if((e.type == 'checkbox') && (e.name != 'checkall'))
 	  e.checked = jar.checkall.checked;
  }
}

function checkCtrl() {
  var jar = document.form1;
  var bin = jar.elements.length;
  var boxes_tot = 0;
  var boxes_on = 0;

  for(var i = 0 ; i < bin ; i++) {  
      var e = jar.elements[i];
      if((e.type == 'checkbox') && (e.name != 'checkall')) {
	  boxes_tot++;
          if(e.checked) {
	     boxes_on++;
          }
      }
  }
  if(boxes_tot == boxes_on) {
     jar.checkall.checked = true;
  } else {
     jar.checkall.checked = false;
  }
}

</script>

<form name="form1">

	<input 	type="checkbox" 
		name="checkall" 
		onClick="checkAll()" style="border-width:0px;height:10px;width:10px;"><br><br>
	<input type="checkbox">box1<br>
	<input type="checkbox">box2<br>
	<input type="checkbox">box3<br>
</form>

MVH BromZ

Medlem sedan dec. 20025 483 inlägg
#2

Så här kanske:

function checkCtrl(o) {
  var jar = document.form1;
  var bin = jar.elements.length;
  var cAll = jar.elements["checkall"];
  
  if( bin == 2 )
    cAll.checked = (cAll.checked) ? false : true;
}

</script>

</head>

<form name="form1">

	<input type="checkbox" 
		name="checkall" 
		onClick="checkAll()" style="border-width:0px;height:10px;width:10px;"><br><br>
	<input type="checkbox" onclick="checkCtrl(this)">box1<br>
	<input type="checkbox" onclick="checkCtrl(this)">box2<br>
	<input type="checkbox" onclick="checkCtrl(this)">box3<br>
	
</form>

:)

Medlem sedan sep. 2002188 inlägg
#3

japp, när jag slänge in checkAll() i din kod funkade det finfint! Tack så mycket för hjälpen!

MVH
BromZ

257 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)