Avatar billede tanzaweb Nybegynder
22. september 2005 - 22:41 Der er 15 kommentarer og
1 løsning

problemer med onchange

hej jeg har følgende spørgsmål.

jeg kan ikke få denne til at skifte når jeg vælger en ting i dropdown.

<script type="text/javascript">
                        function showSelect(sel){
                            var x = 1;
                            while(sel.form.elements["extra[nummer]" + x]){
                                sel.form.elements["extra[nummer]" + x].style.display = 'none';
                                x++;
                            }
                                if(sel.form.elements["extra[nummer]" + sel.value])
                                sel.form.elements["extra[nummer]" + sel.value].style.display = 'inline';
                        }
                    </script>
                    <tr>
                        <td align="center" class="normal">
                        <select name="id" onchange="showSelect(this);">
                        <option value="0">Vælg Alm. Guld, eller nummerportering</option>
                                                <option value="14">Guld numre</option>
                                                <option value="15">Almindelige numre</option>
                                                <option value="16">Nummerportering</option>
                                                </select><br />
                       
                                                <select id="extra[nummer]14" name="extra[nummer]" style="display:none;" >
                                                                        <option value="46595080">46595080</option>
                                                <option value="46975020">46975020</option>
                                                <option value="46975022">46975022</option>
                                                <option value="46975025">46975025</option>
                                                <option value="46975030">46975030</option>
                                                <option value="46975033">46975033</option>
                                                <option value="46975055">46975055</option>
                                                <option value="46975066">46975066</option>
                                                <option value="46975070">46975070</option>
                                                <option value="46975077">46975077</option>
                                                <option value="46975088">46975088</option>
                                                <option value="46975090">46975090</option>
                                                <option value="46975100">46975100</option>
                                                <option value="46975110">46975110</option>
                                                <option value="46975111">46975111</option>
                                                <option value="46975115">46975115</option>
                                                </select>
                                               
                                                <select id="extra[nummer]15" name="extra[nummer]" style="display:none;" >
                                                                        <option value="46595080">46595080</option>
                                                <option value="46975020">46975020</option>
                                                <option value="46975022">46975022</option>
                                                <option value="46975025">46975025</option>
                                                <option value="46975030">46975030</option>
                                                <option value="46975033">46975033</option>
                                                <option value="46975055">46975055</option>
                                                <option value="46975066">46975066</option>
                                                <option value="46975070">46975070</option>
                                                <option value="46975077">46975077</option>
                                                <option value="46975088">46975088</option>
                                                <option value="46975090">46975090</option>
                                                <option value="46975100">46975100</option>
                                                <option value="46975110">46975110</option>
                                                <option value="46975111">46975111</option>
                                                <option value="46975115">46975115</option>
                                                </select>
                                               
                                                <select id="extra[nummer]16" name="extra[nummer]" style="display:none;" >
                                                                        <option value="46595080">46595080</option>
                                                <option value="46975020">46975020</option>
                                                <option value="46975022">46975022</option>
                                                <option value="46975025">46975025</option>
                                                <option value="46975030">46975030</option>
                                                <option value="46975033">46975033</option>
                                                <option value="46975055">46975055</option>
                                                <option value="46975066">46975066</option>
                                                <option value="46975070">46975070</option>
                                                <option value="46975077">46975077</option>
                                                <option value="46975088">46975088</option>
                                                <option value="46975090">46975090</option>
                                                <option value="46975100">46975100</option>
                                                <option value="46975110">46975110</option>
                                                <option value="46975111">46975111</option>
                                                <option value="46975115">46975115</option>
                                                </select>
Avatar billede mm12010 Nybegynder
23. september 2005 - 08:29 #1
uden at være helt sikker på hvad du mener, vil jeg gætte på at denne linie løser dit problem:
<select name="id" onchange="for(i=0;i<this.options.length;i++) if(this.form.elements['extra[nummer]'+this.options[i].value]) this.form.elements['extra[nummer]'+this.options[i].value].style.display=(this.options[i].value==this.value)?'inline':'none';">
Avatar billede tanzaweb Nybegynder
23. september 2005 - 10:02 #2
har prøvet at sætte den ind uden held. men det man skal kunne gøre er jo at kunne vælge kun 1 af de andre drop down bokse, sådan at hvis du vælger alm. så er det den med det rigtige extra[nummer]15 som bliver valgt osv.

<select name="id" onchange="for(i=0;i<this.options.length;i++) if(this.form.elements['extra[nummer]'+this.options[i].value]) this.form.elements['extra[nummer]'+this.options[i].value].style.display=(this.options[i].value==this.value)?'inline':'none';">
                        <option value="0">Vælg Alm. Guld, eller nummerportering</option>
                                                <option value="14">Guld numre</option>
                                                <option value="15">Almindelige numre</option>
                                                <option value="16">Nummerportering</option>
                                                </select><br />
                       
                                                <select id="extra[nummer]14" name="extra[nummer]14" style="display:none;" >
                                                                        <option value="46595080">46595080</option>
                                                <option value="46975020">46975020</option>
                                                <option value="46975022">46975022</option>
                                                <option value="46975025">46975025</option>
                                                <option value="46975030">46975030</option>
                                                <option value="46975033">46975033</option>
                                                <option value="46975055">46975055</option>
                                                <option value="46975066">46975066</option>
                                                <option value="46975070">46975070</option>
                                                <option value="46975077">46975077</option>
                                                <option value="46975088">46975088</option>
                                                <option value="46975090">46975090</option>
                                                <option value="46975100">46975100</option>
                                                <option value="46975110">46975110</option>
                                                <option value="46975111">46975111</option>
                                                <option value="46975115">46975115</option>
                                                </select>
                                               
                                                <select id="extra[nummer]15" name="extra[nummer]15" style="display:none;" >
                                                                        <option value="46595080">46595080</option>
                                                <option value="46975020">46975020</option>
                                                <option value="46975022">46975022</option>
                                                <option value="46975025">46975025</option>
                                                <option value="46975030">46975030</option>
                                                <option value="46975033">46975033</option>
                                                <option value="46975055">46975055</option>
                                                <option value="46975066">46975066</option>
                                                <option value="46975070">46975070</option>
                                                <option value="46975077">46975077</option>
                                                <option value="46975088">46975088</option>
                                                <option value="46975090">46975090</option>
                                                <option value="46975100">46975100</option>
                                                <option value="46975110">46975110</option>
                                                <option value="46975111">46975111</option>
                                                <option value="46975115">46975115</option>
                                                </select>
                                               
                                                <select id="extra[nummer]16" name="extra[nummer]16" style="display:none;" >
                                                                        <option value="46595080">46595080</option>
                                                <option value="46975020">46975020</option>
                                                <option value="46975022">46975022</option>
                                                <option value="46975025">46975025</option>
                                                <option value="46975030">46975030</option>
                                                <option value="46975033">46975033</option>
                                                <option value="46975055">46975055</option>
                                                <option value="46975066">46975066</option>
                                                <option value="46975070">46975070</option>
                                                <option value="46975077">46975077</option>
                                                <option value="46975088">46975088</option>
                                                <option value="46975090">46975090</option>
                                                <option value="46975100">46975100</option>
                                                <option value="46975110">46975110</option>
                                                <option value="46975111">46975111</option>
                                                <option value="46975115">46975115</option>
                                                </select>

Den nedereste select skal egentlig ikke være en select men en input.
Avatar billede mm12010 Nybegynder
23. september 2005 - 10:17 #3
har du <form>-tags omkring?
Avatar billede tanzaweb Nybegynder
23. september 2005 - 10:29 #4
ØØØØh det snakker vi ikke lige om vel.

Hvor vil du have pointene? hehe
Avatar billede mm12010 Nybegynder
23. september 2005 - 10:32 #5
svar ;-)
Avatar billede tanzaweb Nybegynder
23. september 2005 - 10:32 #6
Hvad nu hvis jeg vil have at det ikke kune er en del af en selectbox eller en input box, men et helt område som eksempel:

hvis den skal vise dette område

Flyt nummer: <input id="extra[nummer]16" name="extra[nummer]16" style="display:none;" value="" size="10">

Da jeg jo gerne vil have den foreste tekst med ind.
Avatar billede mm12010 Nybegynder
23. september 2005 - 10:47 #7
tja, man kunne lægge alle input's og selects i div-tags eller man kunne vælge den lette måde:

<input id="extra[nummer]16" name="extra[nummer]16" style="display:none;" value="Flyt nummer" size="10" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;">
Avatar billede tanzaweb Nybegynder
23. september 2005 - 10:57 #8
hvordan gør jeg det lige med div tags?
Avatar billede mm12010 Nybegynder
23. september 2005 - 11:42 #9
<select name="id" onchange="for(i=0;i<this.options.length;i++) if(document.getElementById('div'+this.options[i].value]) document.getElementById('div'+this.options[i].value].style.display=(this.options[i].value==this.value)?'inline':'none';">

...

<div id="div16">Flyt nummer: <input id="extra[nummer]16" name="extra[nummer]16" style="display:none;" value="" size="10"></div>
Avatar billede mm12010 Nybegynder
23. september 2005 - 11:43 #10
og så skal style="display:none;" selvfølgelig flyttes ud på div-tagget
Avatar billede tanzaweb Nybegynder
23. september 2005 - 12:13 #11
nu skifter den ikke men jeg kan ikke se forskellen, det er kun den første den vælger, men jeg må ved at være blind når jeg ikke kan se hvad der er galt.

<select name="id" onchange="for(i=0;i<this.options.length;i++) if(this.form.elements['extra[nummer]'+this.options[i].value]) this.form.elements['extra[nummer]'+this.options[i].value].style.display=(this.options[i].value==this.value)?'inline':'none';">
                        <option value="0">Vælg Alm. Guld, eller nummerportering</option>
                                                <option value="14">Guld numre</option>
                                                <option value="15">Almindelige numre</option>
                                                <option value="16">Nummerportering</option>
                                                </select><br />
                       
                                                <select id="extra[nummer]14" name="extra[nummer]14" style="display:none;" >
                                                                        <option value="46595080">46595080</option>
                                                <option value="46975020">46975020</option>
                                                <option value="46975022">46975022</option>
                                                <option value="46975025">46975025</option>
                                                <option value="46975030">46975030</option>
                                                <option value="46975033">46975033</option>
                                                <option value="46975055">46975055</option>
                                                <option value="46975066">46975066</option>
                                                <option value="46975070">46975070</option>
                                                <option value="46975077">46975077</option>
                                                <option value="46975088">46975088</option>
                                                <option value="46975090">46975090</option>
                                                <option value="46975100">46975100</option>
                                                <option value="46975110">46975110</option>
                                                <option value="46975111">46975111</option>
                                                <option value="46975115">46975115</option>
                                                </select>
                                               
                        <div id="extra[nummer]15" name="extra[nummer]15" style="display:none;">
                        <select id="extra[nummer]16" name="extra[nummer]15" >
                                                                        <option value="46975029">46975029</option>
                                                <option value="46975032">46975032</option>
                                                <option value="46975034">46975034</option>
                                                <option value="46975036">46975036</option>
                                                <option value="46975037">46975037</option>
                                                <option value="46975038">46975038</option>
                                                <option value="46975039">46975039</option>
                                                <option value="46975051">46975051</option>
                                                <option value="46975053">46975053</option>
                                                <option value="46975054">46975054</option>
                                                <option value="46975056">46975056</option>
                                                <option value="46975057">46975057</option>
                                                <option value="46975058">46975058</option>
                                                <option value="46975059">46975059</option>
                                                <option value="46975060">46975060</option>
                                                <option value="46975061">46975061</option>
                                                <option value="46975062">46975062</option>
                                                <option value="46975063">46975063</option>
                                                <option value="46975064">46975064</option>
                                                <option value="46975065">46975065</option>
                                                <option value="46975067">46975067</option>
                                                <option value="46975068">46975068</option>
                                                <option value="46975069">46975069</option>
                                                <option value="46975071">46975071</option>
                                                <option value="46975072">46975072</option>
                                                <option value="46975073">46975073</option>
                                                <option value="46975074">46975074</option>
                                                <option value="46975075">46975075</option>
                                                <option value="46975076">46975076</option>
                                                <option value="46975078">46975078</option>
                                                <option value="46975079">46975079</option>
                                                <option value="46975081">46975081</option>
                                                <option value="46975082">46975082</option>
                                                <option value="46975083">46975083</option>
                                                <option value="46975084">46975084</option>
                                                <option value="46975085">46975085</option>
                                                <option value="46975086">46975086</option>
                                                <option value="46975087">46975087</option>
                                                <option value="46975089">46975089</option>
                                                <option value="46975091">46975091</option>
                                                <option value="46975092">46975092</option>
                                                <option value="46975093">46975093</option>
                                                <option value="46975094">46975094</option>
                                                <option value="46975095">46975095</option>
                                                <option value="46975096">46975096</option>
                                                <option value="46975097">46975097</option>
                                                <option value="46975098">46975098</option>
                                                <option value="46975101">46975101</option>
                                                <option value="46975102">46975102</option>
                                                <option value="46975103">46975103</option>
                                                <option value="46975104">46975104</option>
                                                <option value="46975105">46975105</option>
                                                <option value="46975106">46975106</option>
                                                <option value="46975107">46975107</option>
                                                <option value="46975108">46975108</option>
                                                <option value="46975109">46975109</option>
                                                <option value="46975112">46975112</option>
                                                <option value="46975114">46975114</option>
                                                <option value="46975116">46975116</option>
                                                <option value="46975117">46975117</option>
                                                <option value="46975118">46975118</option>
                                                <option value="46975119">46975119</option>
                                                </select>                       
                        </div>
                       
                        <div id="extra[nummer]16" style="display:none;">
                        Flyt nummer: <input name="extra[nummer]16" value="" size="10">
                        </div>
Avatar billede mm12010 Nybegynder
23. september 2005 - 12:16 #12
alle input/select der skal visis/skjules skal lægges i et div-tag med id'et svarende til den value der findes i den selct med onchange

og så skal du rette din onchange til det jeg skrev i forrige indlæg
Avatar billede tanzaweb Nybegynder
23. september 2005 - 12:26 #13
Hvad er det jeg overser?, virker ikke

<select name="id" onchange="for(i=0;i<this.options.length;i++) if(document.getElementById('div'+this.options[i].value]) document.getElementById('div'+this.options[i].value].style.display=(this.options[i].value==this.value)?'inline':'none';">
                        <option value="0">Vælg Alm. Guld, eller nummerportering</option>
                                                <option value="extra[nummer]14">Guld numre</option>
                                                <option value="extra[nummer]15">Almindelige numre</option>
                                                <option value="extra[nummer]16">Nummerportering</option>
                                                </select><br />
                       
                        <div id="extra[nummer]14" name="extra[nummer]14" style="display:none;">
                        <select id="extra[nummer]14" name="extra[nummer]14">
                                                                        <option value="46595080">46595080</option>
                                                <option value="46975020">46975020</option>
                                                <option value="46975022">46975022</option>
                                                <option value="46975025">46975025</option>
                                                <option value="46975030">46975030</option>
                                                <option value="46975033">46975033</option>
                                                <option value="46975055">46975055</option>
                                                </select>
                        </div>
                       
                        <div id="extra[nummer]15" name="extra[nummer]15" style="display:none;">
                        <select id="extra[nummer]16" name="extra[nummer]15" >
                                                                        <option value="46975029">46975029</option>
                                                <option value="46975032">46975032</option>
                                                <option value="46975034">46975034</option>
                                                <option value="46975036">46975036</option>
                                                <option value="46975037">46975037</option>
                                                <option value="46975038">46975038</option>                                                </select>                       
                        </div>
                       
                        <div id="extra[nummer]16" style="display:none;">
                        Flyt nummer: <input name="extra[nummer]16" value="" size="10">
                        </div>
Avatar billede mm12010 Nybegynder
23. september 2005 - 13:10 #14
div'erne skal have id="div14" id="div15" id="div15" ...
Avatar billede roenving Novice
24. september 2005 - 23:38 #15
Har du ikke et form-tag kan du ikke bruge name-attributten, men så skulle et id ikke være et problem ...

-- og jeg forstår slet ikke, at du har givet dine options i hoved-selecten værdier som extra[nummer]14, når hele scriptet er baseret på værdier som f.eks. er "14" ...

-- og jeg forstår heller ikke, at du overhovedet benytter en javascript/php-array-notation, når du skriver html ?-)
Avatar billede tanzaweb Nybegynder
25. september 2005 - 01:45 #16
dette er bare hvordan html ser ud når den er genereret.
Men det er løst på anden måde nu og virker fint.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester