Zur Navigation

per Klick in <tr> checkbox aktivieren

1 andyd

Hallo,

ich habe eine Tabelle, in jeder Zeile ist vorn eine checkbox. Ich möchte nun bei Klick auf in die Zeile die Checkbox vorn aktivieren!

Im FF funktioniert dies auch bereits einwandfrei aber der Internet Explorer wills nich verstehn...warum auch immer?

function click(element){
 if (element.firstChild.firstChild.checked == true){
 element.firstChild.firstChild.checked = false;
 }else{
 element.firstChild.firstChild.checked = true;
 }
}

echo "<tr bgcolor='#FFFFFF' class='auswahl' onmouseup=click(this) onmouseover=this.style.backgroundColor='#CAFFCA' onmouseout=mouseOut(this)>";
echo "<td><input type='checkbox' name='cb_auswahl[]' value='$id' onclick='return false;'</td>";

Vielen Dank für eure Hilfe!!!

Mfg Andy

04.11.2008 09:57

2 Jörg Kruse

Kannst du mal die funktionierende HTM-Ausgabe (bitte keinen PHP-Code) einer Beispieltabelle posten? Der jetzige Code funktioniert bei mir nur in Opera.

Den einzigen Fehler, den ich auf Anhieb erkennen kann, ist, dass das input Element nicht korrekt geschlossen ist.

echo "<td><input type='checkbox' name='cb_auswahl[]' value='$id' onclick='return false;'></td>"

04.11.2008 11:12 | geändert: 04.11.2008 11:16

3 andyd

Ah ja super Danke....aber es geht trotzdem noch nicht im IE...

hängt es evtl. mit dem "firstChild" zusammen?

04.11.2008 12:06

4 Jörg Kruse

Ich denke, das liegt eher daran, dass der IE das onmouseup in der tablerow nicht ausführt. Das kannst du ja testen:

function click(element){
 alert('onmouseup funktioniert');
}

04.11.2008 12:23

5 andyd

Ja du hast recht...mouseup funktioniert nicht....aber wenn ich da onclick nehme kann ich im FF die checkbox selbst nicht mehr aktivieren... und im IE gehts trotzdem auch nich....

komische sache...

04.11.2008 12:40 | geändert: 04.11.2008 12:42

6 andyd

Gibt es vlt eine Möglichkeit das ganze auf einen anderen Weg zu lösen??? Ich kenn mich in Javascript leider noch zu wenig aus!

04.11.2008 14:12

7 andyd

so hab ich es jetzt hinbekommen und funktioniert auch bei beiden Browsern.....nur jetz kann ich wiedermal die checkbox selbst nicht mehr aktivieren...nur noch über die zeile....an was liegt das denn...

function CheckBox(id) {

      if(document.getElementById('box_'+id).checked == true) {
         document.getElementById('box_'+id).checked = false;
      }else{
      document.getElementById('box_'+id).checked = true;
   }
}

echo "<tr bgcolor='#FFFFFF' id='$id' class='auswahl' onclick=CheckBox(this.id) onmouseover=this.style.backgroundColor='#CAFFCA' onmouseout='mouseOut(this);'>";
echo "<td><input type='checkbox' id='box_$id' name='cb_auswahl[]' value='$id' onclick='return false;'></td>";

04.11.2008 15:26

8 Jörg Kruse

Die Checkbox liegt ja auch innerhalb der Tabellenzeile, so dass sich die eigentliche Markierung ud die Markierung über die JavaScript-Funktion im Ergebnis gegenseitig aufheben.

Ich verwende für solche Zwecke das label Element, das markiert beim Anklicken die Checkbox auch ohne Hilfe von JavaScript:

http://de.selfhtml.org/html/formulare/strukturieren.htm#label

04.11.2008 17:36 | geändert: 04.11.2008 17:39

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]