Avatar billede macho Praktikant
11. juni 2003 - 11:26 Der er 33 kommentarer og
2 løsninger

Aktuel dato som default i formfelt

I et formfelt, som skal bruges til dato-indtastning - eks. 15/06/2003 - vil jeg gerne, at der som default i feltet skal stå aktuel dato. Det er så meningen, at en bruger skal kunne ændre datoen til en hvilken som helst anden dato i samme format dd/mm/yyyy.
Hvorledes gør jeg dette?
Avatar billede roenving Novice
11. juni 2003 - 11:48 #1
Nok nemmest ved at flytte det ud som funktion:

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

function defaultDate(){
  var d = new Date();
  document.MINFORM.MITTEXTFELT.value = d.getDate()+"/"+(d.getMonth+1)+"/"+d.getFullYear();
}


<body ... onload="defaultDate()">

-- så skal du bare indsætte form- og feltnavn ...

hth
jes ,-)
Avatar billede Slettet bruger
11. juni 2003 - 11:49 #2
Der mangler lige et par parenteser efter getMonth: d.getMonth()+1
Avatar billede hulla Novice
11. juni 2003 - 11:50 #3
Denne funktion viser datoen som 11 jun 2003
Ved ikke helt hvordan du laver det om!!

function setDate()
{
    var datenow = new Date()
    datenow = datenow.toLocaleDateString();
    document.getElementById('txtScheduleID').value=datenow;
}

</script>>

<body onload="setDate()">
Avatar billede Slettet bruger
11. juni 2003 - 11:51 #4
Derudover skal det nok også lige formateres:

function defaultDate() {
  nu = new Date();
  document.formNavn.tekstfeltNavn.value = (nu.getDate() < 10) ? "0" : "") + nu.getDate() + "/" + ((nu.getMonth() + 1) < 10) ? "0" : "") + (nu.getMonth() + 1) + "/" + nu.getFullYear();
}
Avatar billede Slettet bruger
11. juni 2003 - 11:52 #5
Hov, der gik noget galt:

document.formNavn.tekstfeltNavn.value = ((nu.getDate() < 10) ? "0" : "") + nu.getDate() + "/" + (((nu.getMonth() + 1) < 10) ? "0" : "") + (nu.getMonth() + 1) + "/" + nu.getFullYear();
Avatar billede roenving Novice
11. juni 2003 - 11:59 #6
-- Ups, der var en tavetosse - godt du kunne rette phoenixv !-)
Avatar billede macho Praktikant
11. juni 2003 - 12:05 #7
Jeg kan godt følger jer en del af vejen. Hvad skriver jeg ved selve feltet, for at det virker? Sådan ser feltet ud nu:

<input type="text" name="secondinput" size=20></p>

??
Avatar billede roenving Novice
11. juni 2003 - 12:15 #8
Ik' no'et ,-)

du skriver det i funktionen, altså formnavn og feltnavn med de der punktummer, som phoenixv og jeg har angivet ...

Hvis din form hedder Nyheder hedder det:

document.Nyheder.secondinput.value = osv.
Avatar billede roenving Novice
11. juni 2003 - 12:17 #9
Du skal bare huske onloaden også (at sætte det ind i <head> er smart ;O):

<script language="javascript" type="text/javascript">
function defaultDate() {
  nu = new Date();
  document.Nyheder.secondinput.value = ((nu.getDate() < 10) ? "0" : "") + nu.getDate() + "/" + (((nu.getMonth() + 1) < 10) ? "0" : "") + (nu.getMonth() + 1) + "/" + nu.getFullYear();
}
</script>
</head>
<body ... onload="defaultDate()">
Avatar billede macho Praktikant
11. juni 2003 - 12:23 #10
Okay, jeg har fået det til at virke nu i ét felt. Men jeg har faktisk to felter det skal sættes ind i, men default-date vil kun vises i det ene felt!
Felterne hedder "firstinput" og "secondinput".
Jeg har forsøgt mig med følgende:

<script language="javascript" type="text/javascript">
<!--
function defaultDate() {
nu = new Date();
document.frmEnquiry.firstinput.value = ((nu.getDate() < 10) ? "0" : "") + nu.getDate() + "/" + (((nu.getMonth() + 1) < 10) ? "0" : "") + (nu.getMonth() + 1) + "/" + nu.getFullYear();
}
function defaultDate2() {
nu = new Date();
document.frmEnquiry.secondinput.value = ((nu.getDate() < 10) ? "0" : "") + nu.getDate() + "/" + (((nu.getMonth() + 1) < 10) ? "0" : "") + (nu.getMonth() + 1) + "/" + nu.getFullYear();
}

//-->
</script>

men hvad med <body ... onload="defaultDate()">  ???
Avatar billede Slettet bruger
11. juni 2003 - 12:25 #11
Det er nemmere med kun én funktion:

function defaultDate() {
nu = new Date();
document.frmEnquiry.firstinput.value = document.frmEnquiry.secondinput.value = ((nu.getDate() < 10) ? "0" : "") + nu.getDate() + "/" + (((nu.getMonth() + 1) < 10) ? "0" : "") + (nu.getMonth() + 1) + "/" + nu.getFullYear();
}

Så behøver du ikke bekymre dig om body-tagget.
Avatar billede macho Praktikant
11. juni 2003 - 12:32 #12
-> phoenixv og roenving
Det virker perfekt nu - smid lige et svar hver, så deler i points...

Jeg sidder og kommer i tanker om en ting mere, jeg godt kunne tænke mig:
Er det - sammen med ovenstående - muligt at få felt nr. to til at blive opdateret, hvis en bruger ændrer i datoen for første felt?
Avatar billede Slettet bruger
11. juni 2003 - 12:38 #13
Ja:

<input type="text" name="firstinput" onKeyUp="this.form.secondinput.value = this.value;">

Men det er da vist rimeligt forstyrrende?
Avatar billede Slettet bruger
11. juni 2003 - 12:38 #14
Svar i øvrigt.
Avatar billede roenving Novice
11. juni 2003 - 12:39 #15
oki '-)
Avatar billede macho Praktikant
11. juni 2003 - 12:47 #16
Det med opdateringen kan jeg ikke få til at virke.
Jeg har dette i function:
<script language="javascript" type="text/javascript">
<!--
function defaultDate() {
nu = new Date();
document.frmEnquiry.firstinput.value = document.frmEnquiry.secondinput.value = ((nu.getDate() < 10) ? "0" : "") + nu.getDate() + "/" + (((nu.getMonth() + 1) < 10) ? "0" : "") + (nu.getMonth() + 1) + "/" + nu.getFullYear();
}

//-->
</script>

dette i body:
<body onload="defaultDate()">

og til sidst input-felterne:
<input type="text" name="firstinput" size=20  onKeyUp="this.form.secondinput.value = this.value;">
<br>
<input type="text" name="secondinput" size=20>
Avatar billede Slettet bruger
11. juni 2003 - 12:48 #17
Har du husket at putte et form-tag rundt om felterne?
Avatar billede macho Praktikant
11. juni 2003 - 12:51 #18
Ja, det er en meget formular med mange felter (skal bruges til bestilling af værelser).
En lille forklaring til hvorfor jeg gerne vil have det med opdateringen til at virke:

Formen skal bruges til at bestille værelser, og felterne er "første nat" og "sidste nat". "Sidste nat" bør jo ikke komme før "første nat".
Avatar billede Slettet bruger
11. juni 2003 - 12:52 #19
Kan du ikke smide et link?
Avatar billede macho Praktikant
11. juni 2003 - 12:55 #20
Avatar billede macho Praktikant
11. juni 2003 - 12:57 #21
PS. Jeg har lige fordoblet points - men venter lige med at afgive.
Avatar billede roenving Novice
11. juni 2003 - 12:59 #22
>>macho

-- prøv aldrig noget som bruger events af i din webwriter, der virker det nemlig overhovedet ikke !-)
Avatar billede macho Praktikant
11. juni 2003 - 13:02 #23
-> roenving

ikke forstået - hvad mener du det er, der ikke virker???
Avatar billede roenving Novice
11. juni 2003 - 13:11 #24
Jeg sad i forrige uge og prøvede at hjælpe en med at lave noget, som var afhængigt af hvad der skete ved de forskellige key-events og fik et par gange tilbage, at det ikke virkede ...

Til sidst måtte jeg spørge, om han havde prøvet det fra et browser-vindue -- så virkede det pludseligt !-)

Jeg bruger selv Stone's Webwriter og den kan under inegn omstændigheder funke med den type events -- jeg er nødt til at gå ud i ekstern browser ...

-- og jeg prøvede lige koden af der -- opdateringen af felterne virkede først i den eksterne ...
Avatar billede macho Praktikant
11. juni 2003 - 13:12 #25
-> roenving

Nu forstår jeg. Det er p.gr.a. min "pop-up" kalender, at feltet ikke bliver opdateret. Det virker fint, når jeg bare skriver i feltet manuelt!
Avatar billede roenving Novice
11. juni 2003 - 13:14 #26
Bueno !O)
Avatar billede roenving Novice
11. juni 2003 - 13:15 #27
-- måske skal du så flytte funktionen til onchange i stedet for onkeyup ...
Avatar billede roenving Novice
11. juni 2003 - 13:15 #28
Så opdaterer den godt nok ikke, mens du skriver ...

arh, du kan bare have den begge steder !-)
Avatar billede roenving Novice
11. juni 2003 - 13:16 #29
<input type="text" name="firstinput" size=20  onKeyUp="this.form.secondinput.value = this.value;" onChange="this.form.secondinput.value = this.value;">
Avatar billede roenving Novice
11. juni 2003 - 13:20 #30
Men så skal vi jo nok også forhindre ændringer i secondinput, hvis brugeren har skrevet i det andet felt, så oppe i javascript-tagget UDENFOR funktionen:

var secondupdate = true;

-- og så:

<input type="text" name="firstinput" size=20  onKeyUp="if(secondupdate)this.form.secondinput.value = this.value;" onChange="if(secondupdate)this.form.secondinput.value = this.value;">

<input type="text" name="secondinput" onKeyDown="secondupdate=false;" size=20>
Avatar billede macho Praktikant
11. juni 2003 - 13:22 #31
Der må gerne ændres i secondinput. Datoen må bare ikke som default være TIDLIGERE end datoen sat i firstinput - det er det, der er pointen
Avatar billede roenving Novice
11. juni 2003 - 13:25 #32
Ja, men hvis en bruger først indtaster i det andet felt, skal han jo ikke tvinges til at starte forfra i andet felt, vel ?-)
Avatar billede macho Praktikant
11. juni 2003 - 13:33 #33
Yes, du har fuldstændig ret. Tusind tak for hjælpen til jer begge :-)
Avatar billede roenving Novice
11. juni 2003 - 13:37 #34
Velbekomme -- og takker for points ;~}
Avatar billede Slettet bruger
11. juni 2003 - 16:56 #35
Takker også her. :)
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