'nabend
ich hab mal wieder ein bissl zu lange gesessen und nun eine hirnblockade.
ich hab einen multiselector, der aus einer db ausgelesen wird. jetzt soll es aber nicht ein feld sein, sondern zwei. die nebeneinander und dann soll beim klicken die angeklickte option in den zweiten selector uebernommen werden bzw. umgekehrt beim klicken in den anderen sollen optionen geloescht werden. mir faellt nur grad kein bsp. dafuer ein ...
hier der code:
Code:
function searchMulti(){
var selects = document.getElementsByTagName("select");
var multi = new Array();
var opt;
// alle multiselects finden
var x = 0;
for(var i=0; i<selects.length; i++){
if(selects[i].size>1){
multi[x] = selects[i];
x++;
}
}
// multiselects duplizieren, fuellen und ausgeben
for(var y=0; y<multi.length; y++){
var opts = multi[y].getElementsByTagName("option");
var u = '';
var v = '';
for(var z=0; z<opts.length; z++){
if(opts[z].value.length>0){
// inhalt fuer zweiten selector
u+= '<option value="'+opts[z].value+'" onclick="addOpt(this.value,\''+multi[y].id+'\',\''+opts[z].innerHTML+'\')">'+opts[z].innerHTML+'</option>';
if(opts[z].selected==true){
// inhalt fuer ersten selector
v+= '<option value="'+opts[z].value+'" selected="selected" onclick="delOpt(this.value,\''+multi[y].id+'\')">'+opts[z].innerHTML+'</option>';
}
}
}
// inhalt rausholen und zwischenlagern
var brok = multi[y].parentNode;
var link = brok.getElementsByTagName("a");
var selector = brok.getElementsByTagName("select");
// var newOne = document.createElement("a");
// newOne.href = link[0].href;
// newOne.innerHTML = link[0].innerHTML;
// alert(link[0].href);
// alten inhalt loeschen
multi[y].parentNode.innerHTML = '';
// zweiten selector aufbauen
var select = document.createElement("select");
select.size = 5;
select.id = multi[y].id+"_2";
select.innerHTML = u;
select.setAttribute("multiple", true);
brok.appendChild(select);
// ersten selector aufbauen
var select = document.createElement("select");
select.size = 5;
select.name = multi[y].name;
select.id = multi[y].id;
select.innerHTML = v;
select.setAttribute("multiple", true);
brok.appendChild(select);
// brok.appendChild(newOne);
}
}
die selectorfelder werden gefunden, die optionen ausgelesen, die selektierten ausgesucht und in das zweite feld uebernommen.
und jetzt das problem: die inhalte werden im safari und ff sauber aufgebaut und im ie ... mal wieder nicht. 
meine vermutung: die befuellung der selectoren per innerhtml haut nicht hin. wie krieg ich die sachen trotzdem rein?
gruss