Avatar billede morch Nybegynder
18. december 2003 - 15:12 Der er 16 kommentarer og
1 løsning

Dato + 1 eller muligvis flere.

Jeg har et ankomstdato - felt, som bliver udfyldt af et javascript.

Når dette er udfyldt, skal afrejsedato - feltet automatisk udfyldes med den i ankomstdatofeltet valgte dato + 1.

Ved siden af disse to felter har jeg et felt, hvor man kan vælge fra 1 til 14 ekstra dage, og hvis man vælger noget i denne, skal afrejsedat - feltet ændres til afrejsedato - feltets dato + det valgte antal ekstra dage.

How dælen do I do det ?

Mvh

morch
Avatar billede roenving Novice
18. december 2003 - 15:18 #1
Hvordan angiver folk datoen, har du et fast format ?-)

-- se evt. et mulighed for fast format her:

http://roenving.users.whitehat.dk/WD3Input.html
Avatar billede morch Nybegynder
18. december 2003 - 15:33 #2
Datoen er dd-mm-åååå , og den leveres af et script i en popup.

scriptet er Tigra Calendar
http://www.softcomplex.com/products/tigra_calendar/

Mvh

Morch
Avatar billede roenving Novice
18. december 2003 - 16:43 #3
En funktion ser nemmest sådan ud:

function setTil(sel){
  var fld1 = sel.form.ankomstdato.value;
  var fld2 = sel.form.afrejsedato;
  var val = +sel.value;
  var d = new Date(+fld1.substring(6), (+fld1.substring(3,5)-1), fld1.substring(0,2));
  d.setTime(g.getTime+val*24*60*60*1000);
  fld2.value = (d.getDate()>9)?"":"0" + d.getDate() + (d.getMonth()>9)?"":"0" + d.getMonth() + d.getFullYear();
}

<select ... onchange="setTil(this)">
  <option> Vælg antal dage </option>
  <option value="1">1 dag</option>
  <option value="2">2 dage</option>
...
</select>

-- du skal selvfølgelig rette de to feltnavne til, hvis de er forkerte !-)
Avatar billede morch Nybegynder
19. december 2003 - 06:55 #4
Nedenstående giver fejlen : 'g' er ikke defineret

Hvad er g ?
Og hvordan får jeg trigget, at når en dato vælges og indsættes i ankomst, udfyldes afrejse automatisk med datoen dagen efter?

<script language="JavaScript" type="text/JavaScript">

function setTil(sel){
  var fld1 = document.forms.pakke.ankomst.value;
  var fld2 = document.forms.pakke.afrejse;
  var val = +sel.value;
  var d = new Date(+fld1.substring(6), (+fld1.substring(3,5)-1), fld1.substring(0,2));
  d.setTime(g.getTime+val*24*60*60*1000);
  fld2.value = (d.getDate()>9)?"":"0" + d.getDate() + (d.getMonth()>9)?"":"0" + d.getMonth() + d.getFullYear();
}
</script>


<select onchange="setTil(this)">
  <option> Vælg antal dage </option>
  <option value="1">1 dag</option>
  <option value="2">2 dage</option>
  <option value="3">3 dage</option>
  <option value="4">4 dage</option>
  <option value="5">5 dage</option>
  <option value="6">6 dage</option>
  <option value="7">7 dage</option>
  <option value="8">8 dage</option>
  <option value="9">9 dage</option>
  <option value="10">10 dage</option>
  <option value="11">11 dage</option>
  <option value="12">12 dage</option>
  <option value="13">13 dage</option>
  <option value="14">14 dage</option>
</select>
Avatar billede roenving Novice
19. december 2003 - 11:02 #5
g er en slåfejl !-)

<script language="JavaScript" type="text/JavaScript">

function setTil(sel){
  var fld1 = document.forms.pakke.ankomst.value;
  var fld2 = document.forms.pakke.afrejse;
  var val = +sel.value;
  var d = new Date(+fld1.substring(6), (+fld1.substring(3,5)-1), fld1.substring(0,2));
  d.setTime(d.getTime()+val*24*60*60*1000);
  fld2.value = (d.getDate()>9)?"":"0" + d.getDate() + (d.getMonth()>8)?"":"0" + (d.getMonth()+1) + d.getFullYear();
}
</script>
Avatar billede morch Nybegynder
19. december 2003 - 12:33 #6
Jeg får en tom value ind i afrejse, og har jeg en værdi i afrejse bliver den fjernet.

Mvh

Morch

<script language="JavaScript" type="text/JavaScript">

function setTil(sel){
  var fld1 = document.pakke.ankomst.value;
  var fld2 = document.pakke.afrejse;
  var val = +sel.value;
  var d = new Date(+fld1.substring(6), (+fld1.substring(3,5)-1), fld1.substring(0,2));
  d.setTime(d.getTime()+val*24*60*60*1000);
  alert(fld1);
  alert((d.getDate()>9)?"":"0" + d.getDate() + (d.getMonth()>8)?"":"0" + (d.getMonth()+1) + d.getFullYear());
  fld2.value = (d.getDate()>9)?"":"0" + d.getDate() + (d.getMonth()>8)?"":"0" + (d.getMonth()+1) + d.getFullYear();
}
</script>
Avatar billede roenving Novice
19. december 2003 - 12:52 #7
Hvad giver dine 2 alerts ?-)

-- og prøv også en alert på val !-)
Avatar billede morch Nybegynder
19. december 2003 - 13:09 #8
val alert = et tal fx. 2
alert fld1 = dato fx. 19-12-2004
3. alert = nada, nothing, zilch, rien, noooothing :-)
Avatar billede roenving Novice
19. december 2003 - 13:36 #9
-- og en alert(d) ?-)
Avatar billede roenving Novice
19. december 2003 - 13:46 #10
Sry, jeg havde jo ikke haft den igennem ...

Een linje skal rettes:

  fld2.value = ((d.getDate()>9)?"":"0") + d.getDate() + "-" + ((d.getMonth()>8)?"":"0") + (d.getMonth()+1) + "-" + d.getFullYear();
Avatar billede morch Nybegynder
19. december 2003 - 13:49 #11
hvis jeg vælger 19-12-2004:
fld1 = 19-12-2004
d = Sun Dec 21 00:00:00 UTC +0100 2003
val = 2
sidste = ingenting
Avatar billede roenving Novice
19. december 2003 - 14:01 #12
Har du skiftet linjen ud ?-)

Fejlen i min første kode var nemlig, at javascript ikke opfattede den første if-sætning-shortcut som afsluttet, så hvis du vælger 1/1-2004 skulle det virke !-)
Avatar billede morch Nybegynder
19. december 2003 - 14:18 #13
Ups - jeg havde ikke opdateret siden, nu har jeg skiftet linien ud og den del sidder lige i skabet.

Nu mangler jeg lige at få udfyldt afrejse med værdien af ankomst + 1 dag, når ankomst er blevet udfyldt (onchange?)
Avatar billede morch Nybegynder
19. december 2003 - 14:19 #14
Skal du ikke lige lave et svar for at score pointene?
Avatar billede morch Nybegynder
19. december 2003 - 14:40 #15
Got it ! Også ank + 1 dag.

Svar nu!!! :-)

Mange tak for hjælpen, og hav en rigtig god jul

Mvh

Morch
Avatar billede roenving Novice
19. december 2003 - 14:49 #16
Velbekomme '-)
Avatar billede roenving Novice
19. december 2003 - 14:59 #17
-- og tak for points ;~}

-- og i lige måde ;O)
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