webForumDet fria alternativet

Markera alla checkboxar i ett lager

4 svar · 250 visningar · startad av Peeer

PeeerMedlem sedan mars 20025 907 inlägg
#1

Säg att jag har X checkboxar med samma namn (friends[]). 5 av dem ligger i ett lager med id="friends1" och resten ligger i ett lager man id="friends2". Nu vill jag att genom att klicka i/ur en speciell checkbox (utanför lagren) så ska alla checkboxar i ett av lagren markeras/avmarkeras. Klickar man på en annan checkbox så ska alla checkboxar i det andra lagret markeras.
Går det att göra så, eller måste jag döpa om checkboxarna så att boxarna i lager 1 heter något, och boxarna i lager 2 heter något annat?

dectgapMedlem sedan sep. 20021 655 inlägg
#2
<script type="text/javascript">
function markera(toCheck, divId){
  var elms = document.getElementById(divId).getElementsByTagName("INPUT");
  for(var i=0; i<elms.length; i++)
    if(elms[i].type=="checkbox")
      elms[i].checked = toCheck;
}
</script>

...

<div id="friends1">
  <input type="checkbox" name="friends[]" />
  <input type="checkbox" name="friends[]" />
  <input type="checkbox" name="friends[]" />
  <input type="checkbox" name="friends[]" />
  <input type="checkbox" name="friends[]" />
</div>

<div id="friends2">
  <input type="checkbox" name="friends[]" />
  <input type="checkbox" name="friends[]" />
  <input type="checkbox" name="friends[]" />
  <input type="checkbox" name="friends[]" />
  <input type="checkbox" name="friends[]" />
</div>

Markera friends1:
<input type="checkbox" onclick="markera(this.checked, 'friends1')" />

<br />

Markera friends2:
<input type="checkbox" onclick="markera(this.checked, 'friends2')" />

Har du bara checkboxes i divarna kan du ta bort if-satsen.

PeeerMedlem sedan mars 20025 907 inlägg
#3

Tack! Precis som det var tänkt, en liten följdfråga bara; Om jag markerar "markera alla i friends1"-rutan och sen avmarkerar någon av chockboxarna i friends1, kan man då göra så att "markera alla i friends1"-boxen också avmarkeras (alla i friends1-lagret är ju inte markerade längre)?

dectgapMedlem sedan sep. 20021 655 inlägg
#4

Lite tillägg:

<script type="text/javascript">
function uMarkerade(isChecked, theForm, no){
  var loopCheck = true;
  if(!isChecked)
    theForm.elements["markera"+no].checked = false;
  else{
    var elms = document.getElementById("friends"+no).getElementsByTagName("INPUT");
    for(var i=0; i<elms.length; i++)
      if(elms[i].type=="checkbox" && !elms[i].checked)
        loopCheck = false;
    theForm.elements["markera"+no].checked = loopCheck;
  }
}

function markera(toCheck, divId){
  var elms = document.getElementById(divId).getElementsByTagName("INPUT");
  for(var i=0; i<elms.length; i++)
    if(elms[i].type=="checkbox")
      elms[i].checked = toCheck;
}
</script>

...

<form>
<div id="friends1">
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 1)" />
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 1)" />
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 1)" />
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 1)" />
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 1)" />
</div>

<div id="friends2">
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 2)" />
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 2)" />
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 2)" />
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 2)" />
  <input type="checkbox" name="friends[]" onclick="uMarkerade(this.checked, this.form, 2)" />
</div>

Markera friends1:
<input type="checkbox" name="markera1" onclick="markera(this.checked, 'friends1')" />

<br />

Markera friends2:
<input type="checkbox" name="markera2" onclick="markera(this.checked, 'friends2')" />
</form>
PeeerMedlem sedan mars 20025 907 inlägg
#5

Du är en ängel! :f
Tack!

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
119 ms — hämta tråd, inlägg och bilagor (db)