Prüfen ob Optionfelder gesetzt sind

shorty

Erfahrenes Mitglied
Guten Abend,

ich bin gerade dabei, ein DropDownMenü (size=10) zu erstellen, in das ich über ein weiteres DropDownMenü (size=10), in dem aus einer MySQL-Datenbank die Usernamen und die dazugehörige ID eingefügt werden, die Optionfelder übertrage, in dem ich das Optionfeld anklicke.

Dies geschieht bisher alles mit Javaskript. Mein Problem hierbei ist nun, dass ich natürlich beliebig oft denselben Namen eintragen lassen kann. D.h ich müsste bei jedem Klick auf den Namen prüfen, ob derselbe Name schon im anderen DropDownMenü vorhanden ist.

Um diese Abfrage eigentlich machen zu können, muss ich allerdings vorher prüfen, ob das zweite DropDownMenü zu Anfang leer ist. Ich weiß allerdings nicht wie, ich das überprüfen kann.

Habe schon etwas ausprobiert, aber dann erhalten ich folgende Fehlermeldung:
"Fehler: uncaught exception: [Exception... "Index or size is negative or greater than the allowed amount" code: "1" nsresult: "0x80530001 (NS_ERROR_DOM_INDEX_SIZE_ERR)" location: xxx"

Versuche halt mit
Code:
if(document.forms["newmessage"].elements["to_uid"].options[document.forms["newmessage"].elements["to_uid"].selectedIndex].text  == null)

darauf zuzugreifen, aber wiegesagt erhalte ich dann obige Fehlermeldung.

Gibt es noch eine andere Möglichkeit, herauszufinden, ob das Select "leer" ist?

Danke schonmal im Voraus für Hilfe
 
Wie kann ich mir denn die Werte der Optionsfelder holen ohne sie vorher selektiert zu haben?
Gibt es dort eine Möglichkeit?

Habe mir nämlich überlegt, vor einem neuen Eintrag, die Optionsfelder des zweiten Selects zu holen, sie mit dem "neuen Eintrag" zu vergleichen und wenn es "false" ist, den neuen Eintrag hinzuzufügen.
 
Code:
document.formularname.listenname.options[index].value
....liefert dir den Wert der Option Nr.:index...wobei dort bei 0 zu zählen begonnen wird
 
Hallo,

ja gut, das mit dem Index wusste ich auch. Aber da sich das alles bei mir mit Javaskript erstellt, weiß ich nicht, welchen Index genau das Optionfeld besitzt, welches ich anklicke.

Andere Möglichkeit wäre, dass ich alle Feldernamen speichere und sie dann vergleiche.
 
Habe jetzt über das Wochenende nochmal einwenig rumgebastelt.

Anzusehen, was ich vor habe, kann man sich derzeitig auf http://www.2dswork.info/test.php.

Es geht um Folgendes:
Ich bin gerade dabei ein PM-System zu programmieren und möchte multiple Nachrichten intern (also innerhalb der Community) erlauben. Ich hatte mir überlegt, die gesamten User der Homepage in einem Listenfeld anzeigen zu lassen. Man kann nun durch Klick auf den gewünschten Namen, diesen zu einem weiteren Listenfeld hinzufügen (dem eigentlichen Empfänger)´und gleichzeitig wird dieser Name aus dem ersten Listenfeld entfernt. Wenn man sich nun entscheidet, ein Namen wieder zu entfernen, klickt man auf den Namen im zweiten Listenfeld, so dass die ganze Prozedur rückwärts abläuft (Name wird aus zweitem Listenfeld entfernt und im ersten wieder eingefügt). Wenn man denselben Namen, den man zuvor aus dem zweiten wieder in das erste "ausgeschnitten" hat, kann man ihn nicht mehr in das zweite hinzufügen. Ich kann den Fehler leider bisher nicht finden. Habt ihr da noch eine Idee?
 
Also bei mir funktioniert das so, wie es lt. deiner Beschreibung gehen sollte.
Ich kann die Namen beliebig umherschieben...von rechts nach links und umgekehrt..soft ich will :-)
 

Neue Beiträge

Zurück