webForumDet fria alternativet

Checkbox problem

3 svar · 308 visningar · startad av jockooono

jockooonoMedlem sedan mars 200561 inlägg
#1

Har använt ett script som automatiskt kryssa i alla kryssrutor när man kryssar i den kategorins kryssruta. Alltså om jag kryssa för kategori 1:s kryssruta så ska all kryssrutor som hör till denna kategori också kryssas i. Problemet är att om jag har mer än 10 kategorier och kryssar för kategori 1 så kommer alla kryssrutor som innehåller en 1:a också kryssas i (11,12,13...). Lite svårt att förklarar... Jag är ingen klippa på javascript så jag hajar inte riktigt vad "if (theForm.elements.className.indexOf(cName) !=-1){" gör men antar att det är där felet ligger. Till saken hör att jag loopar fram alla kryssrutor. Grymt tacksam för hjälp!

function checkAll(theForm, cName, allNo_stat) {
	var n=theForm.elements.length;
	for (var i=0;i<n;i++){
		if (theForm.elements[i].className.indexOf(cName) !=-1){
			if (allNo_stat.checked) {
			theForm.elements[i].checked = true;
			}
			else {
			theForm.elements[i].checked = false;
			}
		}
	}
}

<input type="checkbox" name="kat1" onClick="checkAll(document.getElementById('myform'), '1', this);"> Kategori 1
<input type="checkbox" class="1"> Kryssruta 1
<input type="checkbox" class="1"> Kryssruta 2

<input type="checkbox" name="kat2" onClick="checkAll(document.getElementById('myform'), '2', this);"> Kategori 2
<input type="checkbox" class="2"> Kryssruta 3
<input type="checkbox" class="2"> Kryssruta 4
...
<input type="checkbox" name="kat10" onClick="checkAll(document.getElementById('myform'), '10', this);"> Kategori 10
<input type="checkbox" class="10"> Kryssruta 5
<input type="checkbox" class="10"> Kryssruta 6
nitro2k01Medlem sedan aug. 20039 342 inlägg
#2
function checkAll(allNo_stat) {
	var theForm = allNo_stat.form;
	var n=theForm.elements.length;
	cName=allNo_stat.name.replace(/^kat/, "");

	for (var i=0;i<n;i++)
		if (theForm.elements[i].className==cName)
			theForm.elements[i].checked = allNo_stat.checked;

}

<input type="checkbox" name="kat1" onClick="checkAll(this);"> Kategori 1
<input type="checkbox" class="1"> Kryssruta 1
<input type="checkbox" class="1"> Kryssruta 2

<input type="checkbox" name="kat2" onClick="checkAll(this);"> Kategori 2
<input type="checkbox" class="2"> Kryssruta 3
<input type="checkbox" class="2"> Kryssruta 4
...
<input type="checkbox" name="kat10" onClick="checkAll(this);"> Kategori 10
<input type="checkbox" class="10"> Kryssruta 5
<input type="checkbox" class="10"> Kryssruta 6

Kodeb är bara testad i mitt huvud, men bör fungera.

jockooonoMedlem sedan mars 200561 inlägg
#3

Ser ut att fungera! Stort tack ;)

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

En sista sak, vänligen acceptera mitt svar som slutgiltigt!

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