webForumDet fria alternativet

Markera checkboxar

5 svar · 374 visningar · startad av learn

learnMedlem sedan jan. 20051 130 inlägg
#1

Jag vill markera flera checkboxar (och även bestämma vilka) mha ett klick. Varför funkar inte detta:

<script type="text/javascript">

function check(form,isChecked,toCheck) {
toCheckArray = toCheck.split("-");
			
for ( var i = 0; i < toCheckArray.length; i++ ) {
document.form.toCheckArray[i].checked = isChecked;
}
}

</script>

<input type="checkbox" onclick="check(this.form, this.checked, '1-2');" /> Markera

<input type="checkbox" name="1" /> 
<input type="checkbox" name="2" />

(toCheck innehåller de checkboxar som skall markeras separerade med ett "-".)

tallabombaMedlem sedan jan. 20062 inlägg
#2

toCheckArray är en sträng för elementets namn/id så du bör nog använda getElementById(toCheckArray) i stället.

Vet inte om det funkar med name="". Jag skulle nog köra med id="" för säkerhets skull.

Hoppas det hjälper. Har inte kollat så noga.**

Peter SMedlem sedan dec. 20025 483 inlägg
#3
  1. 'toCheckArray[ i ]' tolkas inte som du vill. I.o.m. att du använder '.'-notationen tror parsern att namnet på checkboxen är 'toCheckArray*' (d.v.s. name="toCheckArray*"). Använd istället document.form.elements[toCheckArray*]*.**
  2. Namn får inte börja med nuffror även om vissa webbläsare kanske tillåter det.
  3. Detta kanske inte är all kod du skickat med, men raden i loopen refererar till ett objekt 'form' som inte finns. Omslut <input>-elementen med <form name="form"> och det skall lösa sig.

:)

learnMedlem sedan jan. 20051 130 inlägg
#4

Tack!!

learnMedlem sedan jan. 20051 130 inlägg
#5

Hur gör man för att få ut ett elements ID-namn?

Peter SMedlem sedan dec. 20025 483 inlägg
#6

Om referensen till objektet är elm:

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