21. januar 2004 - 11:19
Der er
18 kommentarer og 1 løsning
Skal kun komme hvis jeg vælger det!
Jeg har dette kode <select size="1" name="Dag"> <option selected value="Vælg dag">Vælg dag</option> <option>Mandag</option> <option>Tirsdag</option> <option>Onsdag</option> <option>Torsdag</option> <option>Fredag</option> <option>Lørdag</option> <option>Søndag</option> </select> <input type="text" name="Fra" size="4"> <input type="text" name="Til" size="4"> de sidste to Fra og Til (input) skal kun komme frem når man vælger en dag, altså når valgte bliver andet end "Vælg Dag" Nå så Til er udfyldt, skal den gentage det. på en eller anden måde, altså så man har mulighed for at indtaste en ny dag og fra samt til.
Annonceindlæg fra Bluecircle
21. januar 2004 - 11:32
#1
<form name="f"> <select size="1" name="Dag" onchange="if(this.options[this.selectedIndex].value!='Vælg dag'){document.f.Fra.style.display='block';document.f.Til.style.display='block';}else{document.f.Fra.style.display='none';document.f.Til.style.display='none';};">
21. januar 2004 - 13:55
#2
skal du ha flere end ett set med "Til/Fra" inputs ? Altså at du kan have 2xFra og 2x Til ? /nute
Slettet bruger
21. januar 2004 - 17:58
#3
Lidt kortere: <select size="1" name="Dag" onchange="this.form.Fra.style.display = this.form.Til.style.display = (this.selectedIndex != 0) ? 'block' : 'none';">
21. januar 2004 - 21:19
#4
hmm, jeg syntes ikke at jeg kan få det til at virke!
24. januar 2004 - 18:42
#5
Sådan, så ?-) <form> <select size="1" name="Dag" onchange="if(this.selectedIndex!=0){showInputs(1);}else{hideInputs()}"> <option selected value="Vælg dag">Vælg dag</option> <option>Mandag</option> <option>Tirsdag</option> <option>Onsdag</option> <option>Torsdag</option> <option>Fredag</option> <option>Lørdag</option> <option>Søndag</option> </select> <div id="minDiv" style="display:none;"></div> </form> <script type="text/javascript"> function hideInputs(){ document.getElementById("minDiv").style.display="none"; } function showInputs(nr){ var txt = "", s = document.getElementById("minDiv"); alert(s.innerHTML.length); if(nr==2||s.innerHTML.length>1)txt="<br>"; if(nr==2||s.innerHTML.length==0){ s.innerHTML += txt+'<input type="text" name="Fra" size="4"><input type="text" name="Til" size="4" onchange="showInputs(2);">'; } s.style.display = 'block'; } </script>
25. januar 2004 - 15:53
#6
næsten, jeg får en fejl i hovedet hver gang jeg klikker på noget. og så skal man kunne vælge dag igen.
25. januar 2004 - 16:15
#7
Hvilken fejl ?-) jeg har glemt at udkommentere en alert, så det skal lige gøres: //alert(s.innerHTML.length); -- og den muliggør da netop at vælge en ny dag, men skal alle boksene så væk ?o]
25. januar 2004 - 23:41
#8
jep det hjalp, og den skal ikke blot lave to felter mere, men også gøre sådan at man kan vælge andre dage Eks: Nu Efter Onsdag Onsdag 8 - 16 8 - 16 16 - 17 Onsdag 17 - 18 16 - 17 Onsdag 17 - 18
26. januar 2004 - 00:27
#9
Det forstår jeg som noget, du skal gøre server-side !-) -- men måske har du andre ideer, end jeg har forstået ... Hvis man ændrer dag undervejs, har jeg set det som en fortrydelse af hvilken dag man har valgt, fordi jeg ser det som umuligt at finde rundt i, om en bruger lige pludseligt vælger en dag og så ændrer, og senere vælger den samme ...
26. januar 2004 - 10:31
#10
28. januar 2004 - 07:01
#11
Eneste problem er, at man skal klikke to gange for at skifte dag, men den er nødvendig, hvis man skal kunne vælge flere træningstider på en dag ... -- hvis ikke der skal kunne være flere tider på en dag bliver et hjørne af koden mere simpel !-) <form> <select size="1" name="Dag" onchange="if(this.selectedIndex!=0){showInputs(1,this.value,this.form);}else{hideInputs()}"> <option selected value="Vælg dag">Vælg dag</option> <option value="Mandag">Mandag</option> <option value="Tirsdag">Tirsdag</option> <option value="Onsdag">Onsdag</option> <option value="Torsdag">Torsdag</option> <option value="Fredag">Fredag</option> <option value="Lørdag">Lørdag</option> <option value="Søndag">Søndag</option> </select> <div id="minDiv" style="display:none;"></div> </form> <script type="text/javascript"> function hideInputs(){ document.getElementById("minDiv").style.display="none"; } function showInputs(nr,dag,f){ var txt = "", s = document.getElementById("minDiv"); if(nr==1){ var inps = f.Til; if(inps){ if(inps.length&&inps[inps.length-1].value==""||inps.value==""){ var t = s.innerHTML; if(inps.length>1){ t = t.split("<BR>"); var v = new Array(); for(i=0;t.length-1>i;i++)v[i]=t[i]; if(v.length>1){ s.innerHTML = v.join("<br>"); } else s.innerHTML = v[0]; }else s.innerHTML = ""; } } } if(nr==2||s.innerHTML.length>1)txt="<br>"; s.innerHTML += txt+dag+': <input type="text" name="Fra" size="4"><input type="text" name="Til" size="4" onchange="showInputs(2,\''+dag+'\');">'; s.style.display = 'block'; } </script>
28. januar 2004 - 13:56
#12
Ja, den er ved at være der. Hvis du så skal slette en igen, hvordan kan det gøres, og en anden ting, hvordan lager jeg det i en database (hvilke variabler skal får jeg at arbejde med?)
28. januar 2004 - 13:59
#13
kan man ikke få den til at sortere det fra A-Å, hvis ikke, er det også lige meget
28. januar 2004 - 14:35
#14
Mener du sortere dagene ?-) Umiddelbart er det lidt besværligt, men det var denne øvelse også: <form> <select size="1" name="Dag" onchange="if(this.selectedIndex!=0){showInputs(1,this.value,this.form);}else{hideInputs()}"> <option selected value="Vælg dag">Vælg dag</option> <option value="Mandag">Mandag</option> <option value="Tirsdag">Tirsdag</option> <option value="Onsdag">Onsdag</option> <option value="Torsdag">Torsdag</option> <option value="Fredag">Fredag</option> <option value="Lørdag">Lørdag</option> <option value="Søndag">Søndag</option> </select> <div id="minDiv"></div> </form> <script type="text/javascript"> var numInps = 0; function hideInputs(){ document.getElementById("minDiv").style.display="none"; } function showInputs(nr,dag,f){ if(nr==1)removeInput(f,'last'); var txt = "", s = document.getElementById("minDiv"); if(nr==2||s.innerHTML.length>1)txt="<br>"; s.innerHTML += txt+dag+': <input type="text" name="Fra" size="4"><input type="text" name="Til" size="4" onchange="showInputs(2,\''+dag+'\');"><button onclick="removeInput(this.form,'+numInps+')">Fjern Tid</button>'; numInps++; s.style.display = 'block'; } function removeInput(f,num){ var k=0,s = document.getElementById("minDiv"); var inps = f.Til; if(inps){ if(inps.length&&inps[inps.length-1].value==""||inps.value==""){ var t = s.innerHTML; if(inps.length>1){ t = t.split("<BR>"); var v = new Array(); if(num!='last')t[num]=""; else t[t.length-1]=""; alert(t); for(i=0;t.length>i;i++)if(t[i]!="")v[k++]=t[i]; if(v.length>1){ s.innerHTML = v.join("<br>"); } else s.innerHTML = v[0]; }else s.innerHTML = ""; } } return; } </script>
29. januar 2004 - 21:19
#15
den skal ikke sortere dagene, men hvorfor kommer der så mange fejl, hver gang man trykker på noget kommer der en fejl, men ellers ser det godt ud
29. januar 2004 - 21:40
#16
Igen en debug-alert, jeg ikke har fået fjernet ,-( Når man laver bare en lille smule kompliceret kodning sker det, at det virker, som man ønsker det første gang ... Det er faktisk lykkedes mig een gang i år !-) -- men de fleste gange er der nogle ting, du ikke har taget højde for, og debugging i javascript hedder alerts, så dem skal man selvfølgelig huske at fjerne, før det sættes i produktion ... Linjen: alert(t); skal bare fjernes (eller evt. udkommenteres med // foran)
12. januar 2005 - 23:43
#17
kom med et svar og du skal få nogle point..
13. januar 2005 - 13:25
#18
Oki '-)
14. januar 2005 - 10:23
#19
Tak for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling