JS mit Selectfeldern, versch. Probleme

Dragi

Grünschnabel
Hallo an alle :)

Ich hab gleich mehrere kleine Probleme mit folgendem Code:

<script language="javascript">
<!--

function showSelected () {
for ( var x = 0; x < document.inputForm.freunde.length; x ++ ) {
if ( document.inputForm.freunde[x].selected ) {
var newElement = document.createElement("option");

newElement.text = document.inputForm.freunde[x].text;
newElement.value = document.inputForm.freunde[x].value;

document.inputForm.eingeladen.options.add(newElement);
}
}
}

function delSelected () {
for ( var x = document.inputForm.eingeladen.length; x > 0; x -- ) {
document.inputForm.eingeladen.options.remove(0);
}
}

// -->
</script>

<form name=inputForm>

<select multiple name="freunde" onDblClick="showSelected();">
<option value="1">Name 01</option>
<option value="2">Name 02</option>
</select>

<select multiple name="eingeladen" onDblClick="delSelected();">
</select>

Folgene Probleme treten auf:

a) ich möchte dass man einen User nur EINMAL rüberschieben kann per Doppelklick, aktuell geht es unendlich oft

b) ich möchte dass man rechts die User auch einzeln löschen kann per Doppelklick, derzeit löscht das Script alle Einträge rechts per Doppelklick

Jemand eine Idee? :)

Schonmal vielen Dank!

Dragi
 
Zum Ersten:
du könntest bspw. in "freunde" den value eines "Freundes", sobald er "eingeladen" wurde, auf "0" setzen.(jeweils am Ende des Schleifendurchlaufs)
Zum Beginn des Schleifendurchlaufs prüfst du das "value"-Attribut, ist es "0", ignorierst du den Freund(continue;)

zum Zweiten:
Da hast du bloss vergessen, in delSelected() zu prüfen, ob die jeweilige <option> "selected" ist...so wie du es in showSelected() tust.
 
Zurück