Select Wert selected an bzw. aus setzen
hawkmaster
- javascript
Hallo zusammen,
In der Auwahlliste (<select>) "sel_serviceproperties" werden verschiedene Werte gelistet.
z.b.
rot
blau
gelb
grün
Bei einem Klick auf einen Wert, wird dieser in einem Cookie gespeichert (setCookies()) und auf der Seite angezeigt (Ausgabe()).
wenn man also z.b. auf "blau" klickt, wird blau im Cookie gesetzt und dieser angezeigt.. Klickt man auf "grün" wird grün gesetzt usw.
Jetzt hätte ich noch gerne eine "Abwahl" drin. Also dass man wieder den letzten Wert abwählen kann, also "grün" wieder aus der Auswahl entfernt.
<select name="sel_serviceproperties" size="5" id="sel_serviceproperties" onclick="setCookies(),Ausgabe(),SetSelectOnOff(this);" >
Ich habe es mal versucht mit einer Funktion SetSelectOnOff(this)
Momentan prüfe ich, ob der Wert im Cookie mit dem "selected" Wert übereinstimt. Wenn ja, mache ich ..selected = false.
Das klappt so noch nicht ganz weil ja dies immer zutrifft. Es wird also immer gleich selected auf false gesetzt. Ich möchte das ja nur beim nächsten, erneuten Klick in das Select.
Jetzt weiss ich nicht recht weiter. braucht man noch ein event Handler "onmouse" ??
bin für jeden Tipp dankbar.
function SetSelectOnOff(obj){
for(i=0;i<document.forms[0].sel_serviceproperties.length;i++){
if (document.forms[0].sel_serviceproperties.options[i].selected == true) {
serviceproperties_value = document.forms[0].sel_serviceproperties.options[i].value;
cookieStr = holeCookie('servicecookiename');
if(cookieStr != null){
teile = cookieStr.split("~~~");
servicepropertiesID = teile[1];
if(serviceproperties_value == servicepropertiesID){
document.forms[0].sel_serviceproperties.options[i].selected = false;
}
}
}
}
}
vielen Dank und viele Grüße
hawk
Hi,
Jetzt hätte ich noch gerne eine "Abwahl" drin. Also dass man wieder den letzten Wert abwählen kann, also "grün" wieder aus der Auswahl entfernt.
Und wie soll diese Abwahl vom Benutzer ausgelöst werden?
Ich habe es mal versucht mit einer Funktion SetSelectOnOff(this)
Momentan prüfe ich, ob der Wert im Cookie mit dem "selected" Wert übereinstimt. Wenn ja, mache ich ..selected = false.Das klappt so noch nicht ganz weil ja dies immer zutrifft.
Was trifft immer zu?
MfG ChrisB
Hallo ChrisB
danke für deine Hilfe.
Und wie soll diese Abwahl vom Benutzer ausgelöst werden?
Der Anwender sieht ja das z.b. "rot" ausgewählt wurde. Er will jetzt aber doch gar keine Farben auswählen und klickt wieder auf "rot" um es abzuwählen, also aus dem Cookie zu löschen.
Mir geht es erstmal um das selected = true und false. Das Löschen des Cookie Wertes kommt später.
Was trifft immer zu?
Nun da die Funktion "setzecookie" immer zuerst kommt ist der Cookie wert und der markierte <select> wert ja immer gleich.
Aber vielleicht ist das mit dem Cookie zu verwirrend.
Nehmen wir ein ganz einfaches <select>
<select name="serviceproperties">
<option value="rot">1</option>
<option value="blau">2</option>
<option value="grün">3</option>
<option value="gelb">4</option>
</select>
Wenn man auf "blau" klickt, dann wird dieser Eintrag ja markiert (selected = true). Jetzt möchte ich bei einem erneuten Klick auf den gleichen wert, diesen wieder "deselektieren" also selected = false setzen.
vielen Dank und viele Grüße
hawk
Hi!
Das klappt so noch nicht ganz weil ja dies immer zutrifft.
Das halte ich fuer nicht wahr. Der User klickt "rot" an. Es wird "rot" gespeichert. Der User klickt "blau" an. Wo bitte ist jetzt "blau" gespeichert? Es ist ja wohl immer noch "rot" gespeichert. Jetzt kommt deine Funktion und speichert "blau". Der User will kein blau und klickt wieder "blau". Jetzt trifft es allerdings zu. "blau" geklickt, "blau" gespeichert. Weg damit.
Wo genau ist jetzt Dein Problem?
Jetzt weiss ich nicht recht weiter. braucht man noch ein event Handler "onmouse" ??
Nein.
Hallo Steel,
danke auch dir.
Das halte ich fuer nicht wahr.
Vielleicht habe ich mich zu kompliziert ausgedrückt.
es ist so das immer der wert im Cookie gespeichert wird, der ausgewählt ist.
Wird auf "rot" gedrückt, wird rot im Cookie gespeichert.
Wird auf "blau" geklickt, wird blau gespeichert.
Aber wie ich eben schon Chris gesagt habe, lassen wir das mit dem Cookie einfach mal weg,
Mir geht es momentan nur um den wechsel zwischen Markierung setzen und wieder aufheben.
Wenn man in einem normalen <select> auf einen Eintrag klickt, wird dieser blau hinterlegt, also markiert. Ich kann diese Markierung nicht wieder (ohne JS) aufheben wenn ich auf den gleichen Wert klickt. Nur wenn ich was anderes auswähle.
Jetzt klarer was ich meine?
vielen Dank und viele Grüße
hawk
Hi!
Ich hab dich chon verstanden. Hast Du nun das Problem, zu erkennen, dass die Farbe schon ausgewaehlt ist oder den Zustand des ausgewaehltseins zu entfernen?
Habs jetzt kapiert :-)
man muss sich den selectedIndex und den Zustand merken.
Hat jetzt funktioniert so wie ich will.
vielen Dank und viele Grüße
hawk
Tjo. Dann mal viel Spass weiterhin.