ERLEDIGT
JA
JA
ANTWORTEN
15
15
ZUGRIFFE
3491
3491
EMPFEHLEN
-
Hallo!
Diese Funktion soll mir anhand eines übergebenes Strings (datein) alle Checkboxen mit gleichnamiger ID markieren. Allerdings kommt mir beim Aufruf dieser Funktion die Fehlermeldung, dass ein Objekt erwartet wird.Code javascript:1 2 3 4 5 6 7
function setchecked(datein) { for (var i = 0; i < document.getElementById(datein).length; i++) { document.getElementById(datein)[i].checked = true; } }
Der Aufruf sieht so aus:
Code html:1
<input type="checkbox" name="hauptdatei[]" value="12286.imp" onselect="javascript: set_checked('12286.imp');" />
Die Checkboxen, die markiert werden sollen, sehen alle in etwa so aus:
Code html:1
<input type="checkbox" id="12286.imp" name="up_datei[]" value="" />
Weiß jemand einen Rat, woran es liegen kann?Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?
-
getElementById() besitzt keine length-Eigenschaft, und auch sonst ist es die falsche Wahl...da eine ID immer eindeutig ist.
Stattdessen kannst du es mit getElementsByName() probieren.
Wenn das nicht geht...ginge bspw. Folgendes:
Gehe alle Checkboxen des Dokuments durch, und falls ihre ID die Betreffende ist, checke sie:
...das ist dann aber trotzdem ungültiges HTML wegen der mehrfach vergebenen ID, und auch wegen des Punktes in der ID...der ist dort nicht erlaubt...theoretisch. Praktisch gehts trotzdemCode :1 2 3 4 5 6 7 8 9 10 11
function setchecked(datein) { for (i = 0; i < document.getElementsByTagName('input').length; ++i) { o=document.getElementsByTagName('input')[i]; if(o.type=='checkbox' && o.id==datein) { o.checked=true; } } }
-
Da eine ID dokumentweit einmalig ist, reicht folgende Funktionsdefinition:
Für Elementnamen könntest du folgende benutzen:Code :1 2 3 4
function setCheckedByID( objID ) { document.getElementById(objName).checked = true; }Code :1 2 3 4 5 6 7
function setCheckedByName( objName ) { var elems = document.getElementsByName(objName); for(var i=0; i<elems.length; i++) { elems[i].checked = true; } }Markus Wulftange
-
Ich seh schon, ich muss etwas weiter ausholen. Ist ne ziemlich komplizierte Sache. Es handel sich hier eigentlich um ein PHP- Script. Dabei wird ein Ordner ausgelesen. Es gibt Hauptdatein (abcdef.imp) und zugehörige Anhangsdatein (abcdef_1.jpg). In einer Übersicht werden jetzt alle diese Datein ausgegeben. Zu den auptdatein jeweils die Anhangsdatein.
Komplett alle Datein sind in einem Form.
Bezwecken tu ich, dass alle Anhangsdatein ausgewählt werden, sobald ich die Hauptdatei ausgewählt habe. Aufgrund einer undefinierbaren Zuordnung bezüglich der Input-Namen (haupdatei[]) und der Anhangsdatein (ebenfalls Array), wollte ich die zugehörigen Checkboxen zur Hauptdatei alle mit der selben ID kenntlich machen.
Ich gebe euch mal einen Auszug aus dem fertigen HTML - Dokument:
HTML-Code:<form method="post" action="index.php?action=import" name="upload"> <input type="hidden" name="do" value="" /> <input type="checkbox" name="hauptdatei[]" value="12286.imp" onClick="setchecked('12286.imp');" /> 12286.imp <ul> <li> <input type="checkbox" id="12286.imp" name="up_datei[]" value="12286_1.jpg" /> <a href="import/12286_1.jpg" class="link_more" target="_blank">12286_1.jpg</a> </li> <li> <input type="checkbox" id="12286.imp" name="up_datei[]" value="12286_2.jpg" /> <a href="import/12286_2.jpg" class="link_more" target="_blank">12286_2.jpg</a> </li> <li> <input type="checkbox" id="12286.imp" name="up_datei[]" value="12286_3.pdf" /> <a href="import/12286_3.pdf" class="link_more" target="_blank">12286_3.pdf</a> </li> </ul>
Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?
-
Hast du meine Funktion schon probiert? Damit gehts doch(zumindest bei mir).
-
Wie bereits erwähnt, sind IDs dokumentweit einmalig. Daher ist dein Lösungsansatz nicht möglich. Gib den Elementen doch einfach neue Namen wie etwa „up_datei[12286.imp][]“.
Markus Wulftange
-
Habe ich gerade eben gemacht. Nur kommt mir da der selbe Fehler. Die Funktion ieht nun so aus:
Zitat von Gumbo
Code javascript:1 2 3 4 5 6 7
function setchecked(datein) { for (i = 0; i < document.getElementsByName('up_datei['+datein+']').length; ++i) { document.getElementsByName('up_datei['+datein+']').checked = true; } }
@Sven, deine Variate hat bei mir leider nicht funktioniert.Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?
-
Du hast den Elementnamen nicht ganz übernommen:
Code :1 2 3 4 5 6 7
function setchecked(datein) { var elems = document.getElementsByName("up_datei[" + datein + "][]"); for( var i=0; i<elems.length; i++ ) { elems[i].checked = true; } }Markus Wulftange
-
Meinst du meinen?
Zitat von Gumbo
Falls ja...dumm nur, dass er funktioniert
-
Auch damit kommt die Fehlermeldung, dass beim Aufruf der Funktion ein Objekt erwartet wird. Die Funktion wird nicht ausgeführt.
Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?
-
Dein Lösungsansatz scheint zwar praktisch möglich zu sein, ein solches Dokument wäre aber nicht valide. Denn wie du selbst schon erwähnt hast, ist eine ID immer eindeutig/einmalig. Vielleicht funktioniert das auch nur im Quirks-Modus.
Mein Vorschlag funktioniert bei mir übrigens wunderbar, Tucker.Markus Wulftange
-
Mmmh..dann hab ich wohl eine Sinnestäuschung: http://doktormolle.de/temp/247655-1.htm
Die Frage war übrigens nicht, wie man valides HTML schreibt...aber wenn du unbedingt darauf bestehst...dann erwähne auch, daß dein Vorschlag mit den eckigen Klammern im name ebenso ungültiges HTML erzeugt
Zitat von w3c
-
Ich kann es ja nicht bei dir beurteilen. Aber bei mir wird die Funktion setchecked gar nicht abgearbeitet. Es kommt vorher die Fehlermeldung, dass beim Aufruf der Funktion, also beim Klick in das entsprechende Kästchen, ein Objekt erwartet wird.
Zitat von Gumbo
Hier wird der Fehler ausgespuckt. Es steht dort, dass ein Objekt erwartet wird.HTML-Code:onClick="javascript: setchecked('12286.imp');"Geändert von Tucker (20.06.06 um 21:37 Uhr)
Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?
-
Den Fehler sehe ich ein, Sven. Es ist eben niemand perfekt.

Es ist allerdings komisch, dass der W3C Markup Validator diesbezüglich keinen Fehler meldet.Markus Wulftange
-
Ok. Hab den Fehler gefunden. In einer anderen vorangehenden unabhängigen Funktion gab es einen Fehler. Somit wurde scheinbar der restliche JS- Code nicht mehr geparst.
Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?
Ähnliche Themen
-
Checkboxen auswählen
Von brainsucker im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 30.09.09, 12:13 -
checkboxen alle abrufen/auswählen
Von sandroP im Forum Javascript & AjaxAntworten: 7Letzter Beitrag: 04.10.07, 23:31 -
Checkboxen auswählen und per Link löschen lassen...
Von Kalma im Forum Javascript & AjaxAntworten: 0Letzter Beitrag: 13.12.06, 07:34 -
mehrere Checkboxen
Von daniel1234 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 08.12.06, 21:30 -
Datenbankfelder mittels Checkboxen auswählen
Von Smeagel im Forum PHPAntworten: 0Letzter Beitrag: 01.09.06, 19:04





Zitieren
Login





