Hilfe - Suche - Mitglieder - Kalender
Vollansicht: CheckBox setzen und auslesen ?
MCE-Community.de > Windows Media Center Software > Media Center PlugIns/AddIns, Hacks, Mods + ZusatzSoftware > [mceCodeZone] Programmierung > mceCodeZone - Grundlagen & Tutorials
Leon
Wie kann ich unter JavaScript eine CheckBox aktivieren / setzen ?
Zunächst sind alle unchecked. Beim Laden der Seite bekomme ich Werte geliefert, nach denen bestimmte CheckBoxen aktiviert werden sollen und andere nicht. Aber wie mache ich das ?

QUELLTEXT
function SetCheckBox(id,wert)
{
    if(wert == 1)
    document.getElementById(id).checked = true;
 else
     document.getElementById(id).checked = false;
}


Das funktioniert leider nicht. Der Wert ID gibt den Namen (die ID halt) der CheckBox an, und die Variable "wert" ist entweder 1 oder 0.

Bitte um Hilfe. smile.gif

MfG

Leon
Peacemaker
Bitte Schön wink.gif


QUELLTEXT
var Option = "";

function SetOption()

{
       if (Timer.GetCheckOption1() == "1")
       {
           check1.checked = "true"
           check1.className = "checkbox_checked"
       }
       if (Timer.GetCheckOption2() == "1")
       {
           check2.checked = "true"
           check2.className = "checkbox_checked"
       }
       if (Timer.GetCheckOption3() == "1")
       {
           check3.checked = "true"
           check3.className = "checkbox_checked"
       }
       if (Timer.GetCheckOption4() == "1")
       {
           check4.checked = "true"
           check4.className = "checkbox_checked"
       }
       if (Timer.GetCheckOption5() == "1")
       {
           check5.checked = "true"
           check5.className = "checkbox_checked"
       }
       if (Timer.GetCheckOption6() == "1")
       {
           check6.checked = "true"
           check6.className = "checkbox_checked"
       }
}

function toggleBtn(btn)
   {
       Option = oCurFocus.id
 
       if (oCurFocus.checked == "true")
       {
           oCurFocus.checked = "false"
           oCurFocus.className = "checkbox_hilite"
           Timer.UnCheck(Option);
         
        }else{
           oCurFocus.checked = "true"
           oCurFocus.className = "checkbox_checked_hilite";
           Timer.Check(Option);
       }
   }


function doSelect()
   {
 
       switch(oCurFocus.id)
       {
           case "check1":toggleBtn(check1); break;
           case "check2":toggleBtn(check2); break;
           case "check3":toggleBtn(check3); break;
           case "check4":toggleBtn(check4); break;
           case "check5":toggleBtn(check5); break;    
           case "check6":toggleBtn(check6); break;
           }
}


cya
Leon
Also, das versteh ich nicht. sad.gif

In der Funktion doSelect() habe ich auf die Checkboxen bezogen nur eine Zeile:

QUELLTEXT
if(oCurFocus.checkbox == "true") switchCheckbox()

Heißt, wenn der Benutzer mit dem "Cursor" auf einer Checkbox steht und klickt, wird die Funktion switchCheckbox() aufgerufen.

Die Funktion switchCheckbox() sieht bei mir so aus:

QUELLTEXT
function switchCheckbox()
   {
       /* this function handles checking and unchecking functionality when a checkbox
       is selected or clicked */
       if (oCurFocus.checked == "true")
       {
           oCurFocus.checked = "false"
           oCurFocus.className = "checkbox_hilite"
        }
       else
       {
           oCurFocus.checked = "true"
           oCurFocus.className = "checkbox_checked_hilite";
       }
   }

Heißt, wenn die Checkbox bisher "checked" war, wird sie "unchecked" und umgekehrt genau so.

So, bei den Funktionen wurde bisher ja immer mit oCurFocus gearbeitet, weil sich ja immer auf die Checkbox konzentriert wurde, die der Nutzer gerade ausgewählt hat.

Nun mal zu Deiner Funktion "SetOption()":
Das Erste was ich mich frage ist, was ist "Timer" ? Der Schreibweise zufolge würde ich sagen, es ist eine Klasse, aber woher kommen die ganzen Methoden GetCheckOption1 bis GetCheckOption6 ?? Auf welche id bezieht sich denn z.B. GetCheckOption1 ? Ich nahm an, dass ich die einzelnen Checkboxen über Ihren Namen anspreche, den ich im Attribut "id" der jeweiligen Checkboxen festgelegt habe ?! Ich vermute mal, dass Deine Checkboxen "check1" bis "check6" heißen ?!

Nebenbei gefragt: Deine Funktion "toggleBtn(btn)" bekommt ein Attribut übergeben (btn), aber es wird nirgends in der Funktion benutzt wie es scheint.

MfG

Leon
Leon
clap.gif Problem gelöst. clap.gif

So muss die Funktion aussehen:

QUELLTEXT
    function SetCheckBox(id,wert)
    {
 if(wert == "1")
 {
     document.getElementById(id).checked = "true"
     document.getElementById(id).className = "checkbox_checked"
 }
 else
 {
     document.getElementById(id).checked = "false"
 }
    }


Danke für die Hilfe @ Peacemaker !

MfG

Leon
Peacemaker
ZITAT(Leon @ 07.09.2005, 19:14)
clap.gif Problem gelöst. clap.gif

So muss die Funktion aussehen:

QUELLTEXT
    function SetCheckBox(id,wert)
    {
 if(wert == "1")
 {
     document.getElementById(id).checked = "true"
     document.getElementById(id).className = "checkbox_checked"
 }
 else
 {
     document.getElementById(id).checked = "false"
 }
    }


Danke für die Hilfe @ Peacemaker !

MfG

Leon

Hehe

wollte genau das posten *G*

aber besser bei dem false machst du:

QUELLTEXT
document.getElementById(id).checked = "false"
document.getElementById(id).className = "checkbox"


sonst bleibt der hacken obwohl man klickt!

cya
Leon
@ Peacemaker

Nee, dieses Script läuft nur einmal durch, und zwar wenn die Seite lädt. Die CheckBoxen auf der Seite sind allesamt standardmäßig deaktiviert (unchecked), und werden erst durch dieses Script ggf. aktiviert (checked).

Wenn der Nutzer eine CheckBox selbst ändert, macht das das Script "switchCheckbox()", nicht dieses hier. smile.gif

Aber es trotzdem aufzunehmen schadet wohl nicht. Würde zwar an der Funktion nichts andern, aber der Vollständigkeit halber nehme ich es mit auf. wink.gif

Das muss man erstmal wissen. Das hätten die bei Microsoft ruhig in's SDK mit aufnehmen können.

MfG

Leon
Peacemaker
AHH

Sorry das war ein Denk Fehler von mir! wacko.gif

cya
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2012 Invision Power Services, Inc.