Avatar billede macho Praktikant
17. juni 2003 - 20:39 Der er 14 kommentarer og
1 løsning

Input-maske i datofelt (nok mest til roenvig)

Håber du stadig er med os, roenving!

ref. dette spørgsmål:
http://www.eksperten.dk/spm/363938

Jeg prøver lige at vende tilbage. Jeg har prøvet at få inputmasken til at virke sammen med de eksisterende funktioner i dato-felterne. Det lykkes dog ikke helt, da jeg tror "onkeyup" ikke kan figurere mere end én gang.
Første dato-felt ser således ud (inden forsøg med input-masken):

<input type="text" name="secondinput" size="25" onKeyDown="secondupdate=false;" class="FormInput" value="dd/mm/åååå" onclick="if(this.value==this.defaultValue)this.value='';"
          onfocus="if(this.value==this.defaultValue)this.value='';"
          onblur="if(this.value=='')this.value=this.defaultValue;" class="FormInput" tabindex="11" maxlength="10">

mit felt to (secondupdate) bliver jo opdateret i forhold til felt ét, og denne funktion vil jeg ikke have til at forsvinde!

Jeg kører stadig test her:
Avatar billede macho Praktikant
17. juni 2003 - 20:43 #1
Jeg glemte lige linken til testen:
http://www.staal-larsen.dk/mail/contact_test2.htm
Avatar billede roenving Novice
17. juni 2003 - 22:40 #2
Du har helt ret i, at onkeydown/-up kun kan forekomme een gang, men du kan til gengæld sagtens lægge mange funktioner ind i den, så du kunne dette:

<input type="text" name="secondinput" size="25" onKeyDown="secondupdate=false;if(getCharCode(event)==8)repeatRemove++;" class="FormInput" value="dd/mm/åååå" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" class="FormInput" tabindex="11" maxlength="10" onkeypress="return inputDate(event,this);" onkeyup="restoreVal(getCharCode(event),this);this.focus();">

hth
jes
Avatar billede roenving Novice
17. juni 2003 - 22:41 #3
Forøvrigt fjernede jeg lige onclick, da den jo gør det samme som onfocus
Avatar billede macho Praktikant
17. juni 2003 - 22:57 #4
Ooops,
my mistake :-(

jeg har fået skrevet "secondinput" i stedet for "firstinput". Her "firstinput":

<input type="text" name="firstinput" size="25" onKeyUp="if(secondupdate)this.form.secondinput.value = this.value;" onChange="if(secondupdate)this.form.secondinput.value = this.value;" onclick="if(this.value==this.defaultValue)this.value='';"
          onfocus="if(this.value==this.defaultValue)this.value='';"
          onblur="if(this.value=='')this.value=this.defaultValue;" value="dd/mm/åååå" class="FormInput" tabindex="10" maxlength="10">

og her "secondinput":

<input type="text" name="secondinput" size="25" onKeyDown="secondupdate=false;" class="FormInput" onclick="if(this.value==this.defaultValue)this.value='';"
          onfocus="if(this.value==this.defaultValue)this.value='';"
          onblur="if(this.value=='')this.value=this.defaultValue;" value="dd/mm/åååå" class="FormInput" tabindex="11" maxlength="10">

Det skulle stadig gerne være sådan, at når jeg indtaster en dato i "firstinput" bliver "secondinput" stadig opdateret i forhold til "firstinput"

???
Avatar billede roenving Novice
17. juni 2003 - 23:04 #5
Vi bliver jo nødt til at definere scopet for if-sætningerne, men sådan (ganske utestet):

<input type="text" name="firstinput" size="25" onKeyUp="if(secondupdate){this.form.secondinput.value = this.value;};if(getCharCode(event)==8){repeatRemove++;}" onChange="if(secondupdate)this.form.secondinput.value = this.value;" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" value="dd/mm/åååå" class="FormInput" tabindex="10" maxlength="10" onkeypress="return inputDate(event,this);" onkeyup="restoreVal(getCharCode(event),this);this.focus();">

<input type="text" name="secondinput" size="25" onKeyDown="secondupdate=false;if(getCharCode(event)==8)repeatRemove++;" class="FormInput" value="dd/mm/åååå" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" class="FormInput" tabindex="11" maxlength="10" onkeypress="return inputDate(event,this);" onkeyup="restoreVal(getCharCode(event),this);this.focus();">


-- og så bruger du jo / og ikke - som inputmasken ellers er lavet med, så du skal i koden udskifte 45 med 47 og - med /
Avatar billede macho Praktikant
17. juni 2003 - 23:18 #6
Jeg havde fået klaret den med / men ikke udskiftet 45 med 47; det er gjort nu.

Iøvrigt virker det perfekt nu, dog kunne jeg se, at du stadig - i "firstinput" - have to gange "onkeyup". Jeg lagde den sidste op til den første, så hele "firstinput" nu ser sådan ud:

<input type="text" name="firstinput" size="25" onKeyUp="if(secondupdate){this.form.secondinput.value = this.value;};if(getCharCode(event)==8){repeatRemove++;};restoreVal(getCharCode(event),this);this.focus();" onChange="if(secondupdate)this.form.secondinput.value = this.value;" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" value="dd/mm/åååå" class="FormInput" tabindex="10" maxlength="10" onkeypress="return inputDate(event,this);">

"secondinput" er ligesom du har skrevet det. Det er simpelthen bare lækkert!
Endnu en gang tak Rønving

//.^_^.\\
Avatar billede roenving Novice
17. juni 2003 - 23:23 #7
onkeydown -- øv ...

onkeydown="if(getCharCode(event)==8)repeatRemove++;" onKeyUp="if(secondupdate){this.form.secondinput.value = this.value;};restoreVal(getCharCode(event),this);this.focus();"
Avatar billede macho Praktikant
17. juni 2003 - 23:23 #8
-> Roenving
du skal lige ha' dine pts
Avatar billede macho Praktikant
17. juni 2003 - 23:36 #9
Ja, onkeydown havde jeg så også selv glemt, men er tilføjet.

//.^_^.\\
Avatar billede roenving Novice
17. juni 2003 - 23:39 #10
Takker for points ;~}
Avatar billede macho Praktikant
12. juli 2003 - 14:34 #11
Jeg prøver lige at forstætte lidt i det her spørgsmål, da jeg har erfaret en lille fejl, når man vil rette i indtastet dato (backspace). Blev opmærksom på problemet i dette spørgsmål: http://www.eksperten.dk/spm/375191

Fejlen består i, at ved backspace, går cursoren to tegn tilbage og ikke kun én, som den jo egentlig burde gøre. Noget at gøre ved det?

Smider 30 pts. i nyt spørgsmål ved besvarelse?
Avatar billede roenving Novice
12. juli 2003 - 15:00 #12
Kiggede lige på forskellen i koden -- i den første er denne her med (getcharcode) -- det kan jeg ikke erindre en grund til ...
onkeyup="if(getCharCode(event)==8){repeatRemove++;};restoreVal(getCharCode(event),this);this.focus();"
Avatar billede roenving Novice
12. juli 2003 - 15:02 #13
Og den sletter alle tegn to ad gangen, så:
onkeyup="restoreVal(getCharCode(event),this);this.focus();"
Avatar billede macho Praktikant
12. juli 2003 - 15:32 #14
Yes, det kan jeg godt se, og det hjalp på det - tks.
Avatar billede macho Praktikant
12. juli 2003 - 15:39 #15
Smid et svar her:
http://www.eksperten.dk/spm/375493

to get the points...
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