Hallo,
streiche, was ich früher geschrieben habe, das Verfahren klappt einwandfrei.
zum Testen lass lieber den IE weg. Meine IE-Version funktioniert dann nicht mehr, wenn das neue dynamisch erzeugte Element mit Namen angesprochen werden soll. Das ist/war? ein IE-Bug.
Möglich, dass das auch bei dir die Fehlerursache war oder
du bist mit "id" und "name" durcheinander gekommen
oder ...??
<html>
<head><title>test</title>
<script type="text/javascript">
zm=0;
function zeitmarke(z) {
return (new Date()).getTime() -z;
}
function init_sel(sel_name) {
var imax=parseInt(prompt("wieviele Optionen erzeugen ","7000"));
if (imax>0)
with (document.forms.f1[sel_name]) {
zm=zeitmarke(0);
log("0ms","start init");
for (var i=1;i<imax;i++) {
var o=new Option();
o.value=""+i;
o.text=""+(i*i)
options[options.length]=o;
}
log(""+zeitmarke(zm)+"ms",""+ options.length+" Optionen verfügbar "+sel_name );
}
return false;
}
function new_sel(frm,oldselname) {
var filter=prompt("Welche Zahlenfolge filtern","678");
if (filter) {
zm=zeitmarke(0);
log("0ms","start filter");
var sneu=document.createElement("select");
var salt=frm.elements[oldselname];
for( var i=0;i<salt.options.length;i++) {
if (salt.options[i].text.indexOf(filter)>-1) {
var o=new Option();
o.value=salt.options[i].value;
o.text=salt.options[i].text;
sneu.options[sneu.options.length]=o;
}
}
sneu.id=salt.id;
salt.form.replaceChild(sneu,salt);
sneu.onchange=salt.onchange;
sneu.name=salt.name;
log(""+zeitmarke(zm)+"ms","fertig new_sel");
log(""+zeitmarke(zm)+"ms","id finden :"+document.getElementById(salt.id).id);
}
return false;
}
function change(elem){
var op=elem[elem.selectedIndex];
log("","onchange: "+op.value+"\t"+op.text+"\n");
return false;
}
function log(z,x) {
document.forms.f1.TA.value=""+z+"\t"+x+"\n"+document.forms.f1.TA.value;
}
</script>
</head>
<body onload='init_sel("Auswahl")'>
<h1>test select ersetzen</h1>
<form name="f1" action="javascript:void()">
<select name="Auswahl" id="Auswahlid" onchange="change(this)">
<option value="test">hallo</option>
</select>
<button type=button onclick="return new_sel(this.form,'Auswahl')">new select</button>
<textarea name="TA" cols=50 rows=10></textarea>
</form>
</body>
</html>
Gruß plan_B
--
*®*´¯`·.¸¸.·
*®*´¯`·.¸¸.·