Selektierten Wert einer Combobox in Variable speichern
Daniel N.
- javascript
Hallo,
ich möchte den mit Hilfe einer Combobox selektierten Wert in einer Variable speichern.
Diese Variable möchte ich dazu nutzen, um die getroffenen Auswahl auf verschiedenen Seiten zur Verfügung zu haben.
Ich habe auf diesen Seiten wie folgt eine Combobox deklariert:
<select name="templateList" onchange="setActiveStyleSheet(this.options[this.selectedIndex].value);">
<option value="1">beiges Design</option>
<option value="2">grünes Design</option>
</select>
Wie der Text schon vermuten lässt möchte über diese Combobox das verwendete Styleet einstellbar machen. Dazu nutze ich das Script aus http://www.alistapart.com/stories/alternate/, dass die Auswahl in einem Cookie abspeichert und beim Laden in der Variable "title" ablegt.
Die Auswahl klappt soweit, auch bleibt das ausgewählte Stylesheet beim Wechsel zwischen den Seiten bestehen. Nur leider wird das ausgewählte Stylesheet nicht in der Combobox angezeigt. Was mache ich falsch?
Vielen Dank und viele Grüße
Daniel
P.S.:
Damit ihr nicht erst auf der Webseite mit dem Script suchen müsst anbei noch der Javascript-Code:
function setActiveStyleSheet(title) {
var i, a, main;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") == title) a.disabled = false;
}
}
}
function getActiveStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
}
return null;
}
function getPreferredStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1
&& a.getAttribute("rel").indexOf("alt") == -1
&& a.getAttribute("title")
) return a.getAttribute("title");
}
return null;
}
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
window.onload = function(e) {
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
}
window.onunload = function(e) {
var title = getActiveStyleSheet();
createCookie("style", title, 365);
}
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
Hi,
...hm, hat wirklich keiner eine Idee?
Wahrscheinlich habe ich einfach mein Problem nicht verständlich genug formuliert!
Vielleicht noch ein Versuch, ohne viel Text:
Wie kann ich den selektierten Wert eine Combobox in einer Variablen speichern?
Das muss doch gehen, oder?
Viele Grüße
Daniel
Hallo.
Die Auswahl klappt soweit, auch bleibt das ausgewählte Stylesheet beim Wechsel zwischen den Seiten bestehen. Nur leider wird das ausgewählte Stylesheet nicht in der Combobox angezeigt. Was mache ich falsch?
Du selektierst keine Option.
MfG, at
Hallo.
Die Auswahl klappt soweit, auch bleibt das ausgewählte Stylesheet beim Wechsel zwischen den Seiten bestehen. Nur leider wird das ausgewählte Stylesheet nicht in der Combobox angezeigt. Was mache ich falsch?
Du selektierst keine Option.
Hm, was genau meinst du damit? Der "selektierte" "value" ist eine gültige "Option"?!
Daniel
Hallo.
Du selektierst keine Option.
Hm, was genau meinst du damit? Der "selektierte" "value" ist eine gültige "Option"?!
Vorselektiert wird eine Option, wenn das entsprechende Attribut im HTML-Code gesetzt wird.
MfG, at