Avatar billede menthos Nybegynder
15. juni 2004 - 00:07 Der er 8 kommentarer og
1 løsning

java function

jeg har et javascript der ser sådan ud:
<script language="JavaScript">
function formCheck() {
    if (document.post.textarea.value == "") {
      alert("Du skal skrive en tekst");
      document.post.textarea.focus();
      return false;
    }
}
</script>

men den skulle gerne være lidt længere, så jeg har brug for at vide hvordan man får den til at tjekke flg:
1. om det er et nummer
2. om teksten er under x antal tegn
3. om teksten er over x antal tegn
4. om det er en måned(01-12)
5. om der er en dato/dag(1-31)
6. om det er et år
Avatar billede knudx Nybegynder
15. juni 2004 - 00:39 #1
Du kan lave tekst om til et tal:
var tal = parseInt(tekst);
og teste om de to er ens
if (tekst == tal) ... hvis de er det, er der indtastet et tal, hvis de ikke er ens, er det fordi der også er andre tegn end tal.
Så kan du jo checke om tallet er mellem 01 og 12:
if (tal > 0 && tal < 13) ... virker hvis du er sikker på at du har hele tal. 0.3345 ville slippe igennem, men det er jo ikke en måned... Men parseInt(tekst) giver kun hele tal

du kan checke længden af tekst
if (tekst.length > antal_tegn) ...

Om det er et år ??? Så må du lave en kombination af antal tegn og tallets størrelse. 47769 kunne f.eks. godt være et år, men ikke sandsynligt vel... :^)-J
Avatar billede menthos Nybegynder
15. juni 2004 - 01:51 #2
kan du ikke prøve og lave dem?
Avatar billede grunken Nybegynder
15. juni 2004 - 02:10 #3
Prøv og smid din form engang ? :o)

den skal vel ikke checke alt det på en gang i et felt :o)
Avatar billede menthos Nybegynder
15. juni 2004 - 02:17 #4
den er rimelig lang... så kan i ikke bare lave eksembler?
Avatar billede grunken Nybegynder
15. juni 2004 - 02:42 #5
1. if(!document.FORM.FELT.value.match(/\d+$/)){alert('kun tal');} //checker om feltet er kun indeholdende heltal
2. if(!document.FORM.FELT.value.match(/\w{50,}/)){alert('Teksten er under 50 tegn tegn');} //checker om feltet er minimum 50 tegn
3. if(!document.FORM.FELT.value.match(/\w{,50}/)){alert('Teksten er over 50 tegn');} // gæt selv :o)

4. jeg ville egentligt gerne vide hvordan dit felt til datoen så ud :o)
Men here goes!

if(!document.FORM.FELT.value.match(/^(0?[1-9]|[12]\d|3[01])[\/\-](0?[1-9]|1[0-2])[\/\-](19|20)?(\d{2})$/))alert('datoen er en ost'); //checker om et datofelt er udfyldt gyldig i formatet dd-mm-åå :o)

er det du vil have ?
Avatar billede menthos Nybegynder
15. juni 2004 - 10:16 #6
<input type="text" name="dag" maxlength="2" size="2">-<input type="text" name="mdr" maxlength="2" size="2">-<input type="text" name="år" maxlength="4" size="4">

sådan ser den ud...
så den sidste skal vidst lige ændres lidt ;)
Avatar billede grunken Nybegynder
15. juni 2004 - 12:34 #7
okay så :o)

et specifikt check af de felter vil se sådan ud :o)

<script type="text/javascript">
function formCheck(e){

if(!e.dag.value.match(/^(0?[1-9]|[12]\d|3[01])$/)){
  alert('ulovlig dag');
  //din kode
}

if(!e.mdr.value.match(/^(0?[1-9]|1[0-2])$/)){
  alert('ulovlig måned');
  //din kode
}
if(!e.aar.value.match(/^(19|20)?(\d{2})$/)){
  alert('ulovligt år');
  //din kode
}

}
</script>

<form name="frm" onsubmit="formCheck(this);">
<input type="text" name="dag" maxlength="2" size="2">-<input type="text" name="mdr" maxlength="2" size="2">-<input type="text" name="aar" maxlength="4" size="4"><br />
<input type="submit" value="Send">
</form>

-jeg har ændret dit feltnavn år til aar, da specieltegn i nameattributter uden tvivl vil give uønskede komplikationer

-du SKAL huske og dobbeltchecke på dataen serverside, da javascript er ualmindeligt let at snyde :o)
Avatar billede menthos Nybegynder
16. juni 2004 - 22:29 #8
det virker nu.... tak...
svar så får du points
Avatar billede grunken Nybegynder
17. juni 2004 - 12:51 #9
Gerne :o)

men jeg syntes nu også at knudx skal have en del af kagen, da han egentligt var først med et svar der også kunne bruges :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