|  | 		    
					
        
         
          
         
	
          | |  | Javascript Select option problem? Fra : Christian Kragh
 | 
 Dato :  17-12-09 10:48
 | 
 |  | 
 
            Hej.
 Jeg kan ikke rigtig finde ud af at vælge standart værdien i en select form.
 Jeg er igang med at lave en hjemmeside til min timeseddel og har i den 
 forbindelse brug for at man kan fortryde sine indtastninger.
 I kan se den på http://www3.ckweb.dk/tmdemo Når man vil redigere en dato vælger man det lille ikon ud for den aktuelle 
 dato.
 Lige nu har jeg sat at værdierne til at være standard klokken 13:13 på alle 
 felter.
 Hvis man ændre på blot en af felterne så får man en advarsel når man vil 
 annullere den enkelte dato.
 Det virker også som det skal, men hvis man nu har valgt et andet tidspunkt 
 istedet for den standard valgte så skal den jo gerne gå tilbage til den 
 værdi næste gang man vil redigere samme dato.
 Derfor vil jeg gerne have en javascript funktion til at vælge standard 
 værdien i de select options jeg har under den enkelte dag.
 For hver dag hedder de, hvor X er datoen, fx. 22.
 tidXstarttimer
 tidXstartminutter
 tidXslutminutter
 tidXsluttimer
 tidXtid1timer
 tidXtid1minutter
 tidXtid2timer
 tidXtid2minutter
 tidXtid3timer
 tidXtid3minutter
 Er der en simpel måde eller skal jeg lave det på?
 Venlig hilsen
 Christian 
            
             |  |  | 
  Birger Sørensen (17-12-2009) 
 
	
          | |  | Kommentar Fra : Birger Sørensen
 | 
 Dato :  17-12-09 11:12
 | 
 |  | 
 
            Christian Kragh frembragte:
 > Hej.
 >
 > Jeg kan ikke rigtig finde ud af at vælge standart værdien i en select form.
 standart = flag eller en stander..
 select form = en form der indeholder en select?
   8X
 > Når man vil redigere en dato vælger man det lille ikon ud for den aktuelle 
 > dato.
 8X
 > Er der en simpel måde eller skal jeg lave det på?
 document.getElementById( 'selectID').selectedIndex = 13;
 selectID skal være id for den select du vil sætte selected for.
 13 skal være nummeret på den option du vil vælge, hvor den første er 
 nummer 0.
 Det kan selvfølgelig gøres i en funktion, hvor elementet eller 
 elementets id er en parameter, hvilket nok vil være smart, i 
 betragtning af, at du må have en hel del at vælge imellem. Men det 
 kræver lidt mere indsigt i hvordan du gør det...
 Birger
 -- 
http://varmeretter.dk  - billig, sund og hurtig mad
http://bbsorensen.dk |  |  | 
  Christian Kragh (18-12-2009) 
 
	
          | |  | Kommentar Fra : Christian Kragh
 | 
 Dato :  18-12-09 13:50
 | 
 |  | 
 
            >> Hej.
 >>
 >> Jeg kan ikke rigtig finde ud af at vælge standart værdien i en select 
 >> form.
 >
 > standart = flag eller en stander..
 > select form = en form der indeholder en select?
 >    >
 > 8X
 >> Når man vil redigere en dato vælger man det lille ikon ud for den 
 >> aktuelle dato.
 > 8X
 >> Er der en simpel måde eller skal jeg lave det på?
 >
 > document.getElementById( 'selectID').selectedIndex = 13;
 > selectID skal være id for den select du vil sætte selected for.
 > 13 skal være nummeret på den option du vil vælge, hvor den første er 
 > nummer 0.
 Jeg havde håbet på at jeg ikke skulle skrive hvilket index den skulle vælge, 
 men at der var en metode til at vælge den forudvalgte...
 -- document.getElementById( 'selectID').selectedIndex=defaultselected;
 eller sådan noget.
 Christian 
            
             |  |  | 
   Birger Sørensen (18-12-2009) 
 
	
          | |  | Kommentar Fra : Birger Sørensen
 | 
 Dato :  18-12-09 17:57
 | 
 |  | 
 
            Christian Kragh:
 >>> Hej.
 >>>
 >>> Jeg kan ikke rigtig finde ud af at vælge standart værdien i en select 
 >>> form.
 >>
 >> standart = flag eller en stander..
 >> select form = en form der indeholder en select?
 >>    >>
 >> 8X
 >>> Når man vil redigere en dato vælger man det lille ikon ud for den aktuelle 
 >>> dato.
 >> 8X
 >>> Er der en simpel måde eller skal jeg lave det på?
 >>
 >> document.getElementById( 'selectID').selectedIndex = 13;
 >> selectID skal være id for den select du vil sætte selected for.
 >> 13 skal være nummeret på den option du vil vælge, hvor den første er nummer 
 >> 0.
 >
 > Jeg havde håbet på at jeg ikke skulle skrive hvilket index den skulle vælge, 
 > men at der var en metode til at vælge den forudvalgte...
 > -- document.getElementById( 'selectID').selectedIndex=defaultselected;
 > eller sådan noget.
 >
 > Christian
 Der er ingen tvivl om at både input, textarea og select kender den 
 værdi de havde før der blev lavet ændringer, eller valgt anderledes end 
 default.
 Et reset() på en form der indeholder disse elementer, vil returnere 
 værdier til de oprindelige.
 Det fremgår ikke af hverken W3C eller DOM specifikationer, hvordan man 
 tilgår disse værdier.
 Og der er vel også ret stor sandsynlighed for, at det ikke vil være ens 
 i forskellige browsere.
 Jeg har vist læst om hvordan en gang, men kan ikke huske hvor. (Måske 
 et google opslag kunne hjælpe dig? Har ikke tid lige nu..)
 Birger
 -- 
http://varmeretter.dk  - billig, sund og hurtig mad
http://bbsorensen.dk |  |  | 
    Jens Peter Karlsen (19-12-2009) 
 
	
          | |  | Kommentar Fra : Jens Peter Karlsen
 | 
 Dato :  19-12-09 01:31
 | 
 |  | Det er nu browseren der husker det og ikke de enkelte elementer.
 Den eneste mulighed for at finde ud af hvad default værdien var (hvis
 der var en)  er at parse selve html'en.
 
 Regards Jens Peter Karlsen.
 
 On Fri, 18 Dec 2009 17:56:48 +0100, Birger Sørensen
 <sdc@bbsorensen.com> wrote:
 
 >Der er ingen tvivl om at både input, textarea og select kender den
 >værdi de havde før der blev lavet ændringer, eller valgt anderledes end
 >default.
 >Et reset() på en form der indeholder disse elementer, vil returnere
 >værdier til de oprindelige.
 
 
 |  |  | 
  Jens Peter Karlsen (19-12-2009) 
 
	
          | |  | Kommentar Fra : Jens Peter Karlsen
 | 
 Dato :  19-12-09 01:45
 | 
 |  | Hvis du fortryder vil standard værdierne automatisk være der igen når
 du trykker på reset knappen. Så bare sæt en reset knap på.
 Eller er der noget jeg har misforstået i dit spørgsmål?
 
 Regards Jens Peter Karlsen.
 
 On Thu, 17 Dec 2009 10:48:00 +0100, "Christian Kragh"
 <tursoe@gmail.com> wrote:
 
 >Jeg kan ikke rigtig finde ud af at vælge standart værdien i en select form.
 >
 >Jeg er igang med at lave en hjemmeside til min timeseddel og har i den
 >forbindelse brug for at man kan fortryde sine indtastninger.
 
 
 |  |  | 
  Christian Kragh (19-12-2009) 
 
	
          | |  | Kommentar Fra : Christian Kragh
 | 
 Dato :  19-12-09 13:51
 | 
 |  | 
 
            > Hvis du fortryder vil standard værdierne automatisk være der igen når 
 > du trykker på reset knappen. Så bare sæt en reset knap på. 
 > Eller er der noget jeg har misforstået i dit spørgsmål? 
 Lige præcis, men jeg har bare det problem at jeg har lavet 31 dage man kan
 redigere hver for sig, men det er i samme form, så hvis man fortryder skal det
 kun ændre værdierne for den ene dag...
 Men en reset er selvfølgelig en mulighed så jeg må overveje at lave en form for
 hver dag...
 Ellers må jeg lave en funktion for hver dag der så sætter alle felterne på den
 aktuelle dag...
 Jeg må lige overveje hvad jeg gør...
 Tak for gode svar, det har åbnet mine øjne for muligheder.
 Christian
 -- 
 Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
  - Pædagogiske tutorials på dansk
  - Kom godt i gang med koderne
 KLIK HER! => http://www.html.dk/tutorials |  |  | 
   Birger Sørensen (19-12-2009) 
 
	
          | |  | Kommentar Fra : Birger Sørensen
 | 
 Dato :  19-12-09 14:03
 | 
 |  | 
 
            Christian Kragh formulerede lørdag:
 >> Hvis du fortryder vil standard værdierne automatisk være der igen når 
 >> du trykker på reset knappen. Så bare sæt en reset knap på. 
 >> Eller er der noget jeg har misforstået i dit spørgsmål? 
 >
 > Lige præcis, men jeg har bare det problem at jeg har lavet 31 dage man kan
 > redigere hver for sig, men det er i samme form, så hvis man fortryder skal 
 > det kun ændre værdierne for den ene dag...
 >
 > Men en reset er selvfølgelig en mulighed så jeg må overveje at lave en form 
 > for hver dag...
 >
 > Ellers må jeg lave en funktion for hver dag der så sætter alle felterne på 
 > den aktuelle dag...
 >
 > Jeg må lige overveje hvad jeg gør...
 >
 > Tak for gode svar, det har åbnet mine øjne for muligheder.
 >
 > Christian
 Umiddelbart er løsningen en form for hver dag.
 Men det kan også gøres med AJAX, hvis man har mod på det.
 Birger
 -- 
http://varmeretter.dk  - billig, sund og hurtig mad
http://bbsorensen.dk |  |  | 
    Stig Johansen (19-12-2009) 
 
	
          | |  | Kommentar Fra : Stig Johansen
 | 
 Dato :  19-12-09 18:17
 | 
 |  | Birger Sørensen wrote:
 
 > Umiddelbart er løsningen en form for hver dag.
 > Men det kan også gøres med AJAX, hvis man har mod på det.
 
 Man kan også bare gemme værdierne i et array eller en 'history list', så man
 ved fortryd/'undo' kører tilbage til den forrige værdi.
 Ud fra eksemplet er det dog svært (for mig), at se arbejdsgangen på siden.
 
 Jeg ser kun et par select bokse med år/måned, og en tabel uden indhold.
 
 --
 Med venlig hilsen
 Stig Johansen
 
 
 |  |  | 
  Gunnar Vestergaard (20-12-2009) 
 
	
          | |  | Kommentar Fra : Gunnar Vestergaard
 | 
 Dato :  20-12-09 21:00
 | 
 |  | Christian Kragh skrev:
 > (...)
 > Jeg kan ikke rigtig finde ud af at vælge standart værdien i en select form.
 >
 > Jeg er igang med at lave en hjemmeside til min timeseddel og har i den
 > forbindelse brug for at man kan fortryde sine indtastninger.
 > (...)
 > Det virker også som det skal, men hvis man nu har valgt et andet
 > tidspunkt istedet for den standard valgte så skal den jo gerne gå
 > tilbage til den værdi næste gang man vil redigere samme dato.
 >
 > Derfor vil jeg gerne have en javascript funktion til at vælge standard
 > værdien i de select options jeg har under den enkelte dag.
 > (...)
 > Er der en simpel måde eller skal jeg lave det på?
 > (...)
 
 Der er flere løsninger alt efter hvad behovet er.
 
 Men først må et spørgsmål afklares:
 Kan der blive tale om, at timetallene ikke bliver hele timer men hele
 kvarter i stedet?
 
 I det følgende går jeg ud fra, at du har det fint med teknikken i
 JavaScript og Document Object Model:
 
 Ændr BODY elementet på siden, så det hedder:
 <body onload="RememberTimes()">
 
 I et SCRIPT element indsættes følgende:
 function RememberTimes() {
 var Sel, Tab, ElList, x1;
 Tab=document.getElementById("monthframe");
 ElList=Tab.getElementsByTagName("select");
 for(x1=0; x1<ElList.length; x1++) {
 Sel=ElList[x1];
 Sel.PreviouslyChosen=Sel.selectedIndex;
 }
 }
 
 Ovenstående funktion køres, når siden netop er læst ind. Den opretter og
 indlæser en variabel på hvert SELECT element. Variablen indeholder index
 for det OPTION element, der er valgt som standard. Senere kan du så
 hente værdien fra denne variabel og kopiere den til Sel.selectedIndex
 for at gendanne standardværdierne. Var det det, som du ønskede?
 
 Bemærk at jeg ikke har efterprøvet ovenstående, så der er muligvis,
 eller muligvis ikke, behov for at rette fejl.
 
 I øvrigt et tip:
 Angiveligt anvender du XHTML 1.0 Strict. Der er det ikke tilladt at skrive
 <option selected>00</option>
 
 Det skal være
 <option selected="selected">00</option>
 ifølge standarden (XHTML).
 
 Gunnar
 
 
 |  |  | 
  Christian Kragh (21-12-2009) 
 
	
          | |  | Kommentar Fra : Christian Kragh
 | 
 Dato :  21-12-09 14:04
 | 
 |  | > Der er flere løsninger alt efter hvad behovet er.
 >
 > Men først må et spørgsmål afklares:
 > Kan der blive tale om, at timetallene ikke bliver hele timer men hele
 > kvarter i stedet?
 
 Når man skal lave noget, for eksempel klokken 06:22, har man 15 minutter til
 at logge ind, forberede sig og hvad man ellers skal.
 Derudover har man så 4 minutters gang ifølge arbejdsseddlerne så man skal
 møde 19 minutter før man skal lave det første...
 Derfor kan man godt møde klokken 06:02 så jeg skal have både timer og
 minutter med...
 
 > I det følgende går jeg ud fra, at du har det fint med teknikken i
 > JavaScript og Document Object Model:
 >
 > Ændr BODY elementet på siden, så det hedder:
 > <body onload="RememberTimes()">
 
 Det er en mulighed, men jeg lavede den nemme med serversite...
 Jeg har lavet en funktion der skriver værdierne i en funktion med forsk.
 navne... Her er for dag 1:
 
 <script type="text/javascript">
 function SetStandardDate1 () {
 document.getElementById("tid1starttimer").selectedIndex=10;
 document.getElementById("tid1startminutter").selectedIndex=6;
 document.getElementById("tid1slutminutter").selectedIndex=15;
 document.getElementById("tid1sluttimer").selectedIndex=12;
 document.getElementById("tid1tid1timer").selectedIndex=0;
 document.getElementById("tid1tid1minutter").selectedIndex=0;
 document.getElementById("tid1tid2timer").selectedIndex=0;
 document.getElementById("tid1tid2minutter").selectedIndex=0;
 document.getElementById("tid1tid3timer").selectedIndex=0;
 document.getElementById("tid1tid3minutter").selectedIndex=0;
 };
 </script>
 
 >
 > I øvrigt et tip:
 > Angiveligt anvender du XHTML 1.0 Strict. Der er det ikke tilladt at skrive
 > <option selected>00</option>
 
 Ja, den er fanget i validatoren på min localhost...
 
 Mange tak for gode råd...
 
 Christian
 
 
 
 |  |  | 
 |  |