dinamikus select bug
a már itt is többször hivatkozott, egymástól függő tartalommal rendelkező select-lánc átalakításakor
belefutottam egy hibába:
ha hosszabb listát tölt be a select elemem, frissítés után (rövidebb lista betöltését követően)
a korábbi adatok nem minden esetben(!) tűnnek el.
gondolom valahol itt lehet a bug, de kiiratva a változókat nekem jónak tűnnek.
(gondolom valami kapitális hibát tehettem bele, de nem találom...)
van valakinek ötlete?
előre is köszi!
■ belefutottam egy hibába:
ha hosszabb listát tölt be a select elemem, frissítés után (rövidebb lista betöltését követően)
a korábbi adatok nem minden esetben(!) tűnnek el.
x=document.getElementById('s_two').options.length;
for(i=0;i<x;i++){
document.getElementById('s_two').options[i]=null;}
for(i=0;i<x;i++){
document.getElementById('s_two').options[i]=null;}
gondolom valahol itt lehet a bug, de kiiratva a változókat nekem jónak tűnnek.
(gondolom valami kapitális hibát tehettem bele, de nem találom...)
van valakinek ötlete?
előre is köszi!
<html>
<form>
<select name="s_one" id="s_one" onChange="one_select(this.selectedIndex)">
</select>
<select name="s_two" id="s_two">
</select>
</form>
A:1, B:2, C:2, D:1, E:4, F:2, G:2, H:3, I:2, J:1, K:1, L:5;
<script>
a_one=new Array('A','B','C','D','E','F','G','H','I','J','K','L');a_two=new Array(new Array('A01'),new Array('B01','B02'),new Array('C01','C02'),new Array('D01'),new Array('E01','E02','E03','E04'),new Array('F01','F02'),new Array('G01','G02'),new Array('H01','H02','H03'),new Array('I01','I02'),new Array('J01'),new Array('K01'),new Array('L01','L02','L03','L04','L05'));
for(i=0;i<a_one.length;i++) {
document.getElementById('s_one').options[i]=new Option(a_one[i]);
}
document.getElementById('s_two').options[0]=new Option(a_two[0][0]);
function one_select(n){
x=document.getElementById('s_two').options.length;
for(i=0;i<x;i++){
document.getElementById('s_two').options[i]=null;}
for(i=0;i<a_two[n].length;i++){
document.getElementById('s_two').options[i]=new Option(a_two[n][i]);}
}
</script>
</html>
<form>
<select name="s_one" id="s_one" onChange="one_select(this.selectedIndex)">
</select>
<select name="s_two" id="s_two">
</select>
</form>
A:1, B:2, C:2, D:1, E:4, F:2, G:2, H:3, I:2, J:1, K:1, L:5;
<script>
a_one=new Array('A','B','C','D','E','F','G','H','I','J','K','L');a_two=new Array(new Array('A01'),new Array('B01','B02'),new Array('C01','C02'),new Array('D01'),new Array('E01','E02','E03','E04'),new Array('F01','F02'),new Array('G01','G02'),new Array('H01','H02','H03'),new Array('I01','I02'),new Array('J01'),new Array('K01'),new Array('L01','L02','L03','L04','L05'));
for(i=0;i<a_one.length;i++) {
document.getElementById('s_one').options[i]=new Option(a_one[i]);
}
document.getElementById('s_two').options[0]=new Option(a_two[0][0]);
function one_select(n){
x=document.getElementById('s_two').options.length;
for(i=0;i<x;i++){
document.getElementById('s_two').options[i]=null;}
for(i=0;i<a_two[n].length;i++){
document.getElementById('s_two').options[i]=new Option(a_two[n][i]);}
}
</script>
</html>
megoldódott...
elírás volt.
helyesen:
document.getElementById('s_two').options[0]=null;}