PH
Legendäres Mitglied
Hallo
Ich ein Problem mit einem Javascript.
Das jetztige script funktioniert im IE 5.5 IE 6 und IE 7 aber nicht im Firefox.
Es handelt sich um eine Listbox, die ihre Werte automatisch aktualisieren soll, basierend auf einer anderen Listbox.
Struktur:
CODE <form name="Search_hotels">
listbox1 name="s_country"
listbox2 name="s_city"
</form>
der eigentliche code:
QUOTE
<script language="Javascript">
var cats = new Array();
cats["All"] = "";cats["Bangkok#2"] = "2#4";cats["Chiang Mai#5"] = "5#4";cats["Hua Hin#6"] = "6#4";cats["Pattaya#3"] = "3#4";cats["Phuket - Patong#4"] = "4#4";cats["Singapore#1"] = "1#1";
function set_subcat(fform,llb1,llb2,ccats) {
lb1 = window.document.all[llb1];
lb2 = window.document.all[llb2];
index = lb2.selectedIndex;
if ( index<0 ) index = null;
if (lb2.options[index] != null) {
val = lb2.options[index].value;
} else {
val = null;
}
key=lb1.options[lb1.selectedIndex].value.toString().split('#'[0];
for (i=window.document.forms[fform].elements[llb2].options.length; i >=0 ; i--) {
window.document.forms[fform].elements[llb2].options=null;
}
var i = 1 ;
window.document.forms[fform].elements[llb2].options = new Option("","",false,false);
for (iter in ccats) {
tmp = ccats[iter.toString()].split("#"[1];
tmp2 = ccats[iter.toString()].split("#"[0];
if (tmp==key) {
if (tmp2==val) {
window.document.forms[fform].elements[llb2].options = new Option(iter.toString().split("#"[0],ccats[iter.toString()],true,true);
window.document.forms[fform].elements[llb2].options.selected = true;
}
else{
window.document.forms[fform].elements[llb2].options = new Option(iter.toString().split("#"[0],ccats[iter.toString()],false,false);}
i++;
}
}
}
function set_subcat2() {
set_subcat("Search_hotels","s_country","s_city",cats);
}
window.document.Search_hotels.s_country.onchange = set_subcat2;
set_subcat("Search_hotels","s_country","s_city",cats);
obiges funktioniert gut in allen IE Versionen, jedoch *nicht immer* im Firefox.
ich probiere nun das Script für alle Browser anzupassen.
dies impliziert auch, document.all durch etwas anderes zu ersetzen.
Leider funktioniert das Script dann nicht mehr im IE.
Ich habe get ElementByName getElementsByName getElementByNameTag und getElementById ausprobiert.
Wer kann mit helfen, dass das Script mindestens in IE 5.5, IE 6, IE 7 und FF 2 und FF 3 funktioniert?
Ich ein Problem mit einem Javascript.
Das jetztige script funktioniert im IE 5.5 IE 6 und IE 7 aber nicht im Firefox.
Es handelt sich um eine Listbox, die ihre Werte automatisch aktualisieren soll, basierend auf einer anderen Listbox.
Struktur:
CODE <form name="Search_hotels">
listbox1 name="s_country"
listbox2 name="s_city"
</form>
der eigentliche code:
QUOTE
<script language="Javascript">
var cats = new Array();
cats["All"] = "";cats["Bangkok#2"] = "2#4";cats["Chiang Mai#5"] = "5#4";cats["Hua Hin#6"] = "6#4";cats["Pattaya#3"] = "3#4";cats["Phuket - Patong#4"] = "4#4";cats["Singapore#1"] = "1#1";
function set_subcat(fform,llb1,llb2,ccats) {
lb1 = window.document.all[llb1];
lb2 = window.document.all[llb2];
index = lb2.selectedIndex;
if ( index<0 ) index = null;
if (lb2.options[index] != null) {
val = lb2.options[index].value;
} else {
val = null;
}
key=lb1.options[lb1.selectedIndex].value.toString().split('#'[0];
for (i=window.document.forms[fform].elements[llb2].options.length; i >=0 ; i--) {
window.document.forms[fform].elements[llb2].options=null;
}
var i = 1 ;
window.document.forms[fform].elements[llb2].options = new Option("","",false,false);
for (iter in ccats) {
tmp = ccats[iter.toString()].split("#"[1];
tmp2 = ccats[iter.toString()].split("#"[0];
if (tmp==key) {
if (tmp2==val) {
window.document.forms[fform].elements[llb2].options = new Option(iter.toString().split("#"[0],ccats[iter.toString()],true,true);
window.document.forms[fform].elements[llb2].options.selected = true;
}
else{
window.document.forms[fform].elements[llb2].options = new Option(iter.toString().split("#"[0],ccats[iter.toString()],false,false);}
i++;
}
}
}
function set_subcat2() {
set_subcat("Search_hotels","s_country","s_city",cats);
}
window.document.Search_hotels.s_country.onchange = set_subcat2;
set_subcat("Search_hotels","s_country","s_city",cats);
obiges funktioniert gut in allen IE Versionen, jedoch *nicht immer* im Firefox.
ich probiere nun das Script für alle Browser anzupassen.
dies impliziert auch, document.all durch etwas anderes zu ersetzen.
Leider funktioniert das Script dann nicht mehr im IE.
Ich habe get ElementByName getElementsByName getElementByNameTag und getElementById ausprobiert.
Wer kann mit helfen, dass das Script mindestens in IE 5.5, IE 6, IE 7 und FF 2 und FF 3 funktioniert?