Avatar billede b_ Nybegynder
09. maj 2006 - 19:13 Der er 18 kommentarer og
2 løsninger

Simpel validering af tlf nummer

Skal validere et felt i en formular som skal være et tlf nr...

Kan ikke få det til at virke:

function validering(indsend){

  ......

  if(indsend.tlf.value==''){
    alert('Tlf nummer mangler');
    indsend.tlf.focus();
    return false;
  }
 
  if(!indsend.tlf.length == 8 && isNaN(indsend.tlf)){
    alert('Ugyldig tlf nr - eks 12345678');
    indsend.tlf.focus();
    return false;
  }

  return true;
}
Avatar billede olebole Juniormester
09. maj 2006 - 19:27 #1
<ole>

indesend.tlf.value  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
09. maj 2006 - 19:28 #2
- ups, min sdavøfajl  :)

indsend.tlf.value
Avatar billede b_ Nybegynder
09. maj 2006 - 19:38 #3
Jep det løser fejlen med isNaN, super... men !indsend.tlf.length == 8 virker ikke?
Avatar billede cpufan Juniormester
09. maj 2006 - 21:16 #4
indsend.tlf.length <> 8
Avatar billede cpufan Juniormester
09. maj 2006 - 21:17 #5
eller !(indsend.tlf.length == 8)
Avatar billede softspot Forsker
09. maj 2006 - 22:54 #6
Du mangler at sætte value efter tlf, eller tæller du antallet af egenskaber på tlf-objektet og ikke længden af værdien i tlf-feltet (som Ole også indikerede):

  if(!indsend.tlf.value.length == 8 && isNaN(indsend.tlf.value)){
Avatar billede b_ Nybegynder
10. maj 2006 - 09:06 #7
hmm det har jeg også prøvet, men nedenstående eksempel virker ikke:

if(!indsend.tlf.value.length == 8 && isNaN(indsend.tlf.value)){
    alert('Ugyldig tlf nr - eks 12345678');
    indsend.tlf.focus();
    return false;
  }

Men hvis jeg deler den op, og tager isNaN alene virker den, men !indsend.tlf.value.length == 8 virker ikke.. den godtager fx 11 etc.
Avatar billede softspot Forsker
10. maj 2006 - 10:16 #8
Det er fordi betingelsen kun checker om strenge der har længden 8 er numeriske. Du skal benytte OR i stedet for, altså:

if(!indsend.tlf.value.length == 8 || isNaN(indsend.tlf.value)){
Avatar billede softspot Forsker
10. maj 2006 - 10:19 #9
...og så vil jeg foreslå at du checker længden på lidt anden måde, da din metode kan skabe tvivl om hvad du vil (på grund af præcedensregler i sproget). Jeg vil foreslå flg. metode i stedet for:

if(indsend.tlf.value.length != 8 || isNaN(indsend.tlf.value)) {
Avatar billede b_ Nybegynder
10. maj 2006 - 10:33 #10
Fantastisk.. Har dog valgt at dele den op, så jeg kan give en mere specifik fejlmeddelse..

Smid et svar softspot, og mange tak for hjælpen
Avatar billede b_ Nybegynder
10. maj 2006 - 10:33 #11
ole må nok hellere også få en lille del af kage, så smid et svar ole
Avatar billede softspot Forsker
10. maj 2006 - 10:35 #12
Velbekomme :)
Avatar billede roenving Novice
10. maj 2006 - 14:19 #13
-- tjah, jeg ville måske cecke det hele i et hug:

if(!indsend.tlf.value.match(/^[1-9]\d{7}$/)){
    alert('Ugyldig eller manglende tlf nr. - eks 12345678');
    indsend.tlf.focus();
    return false;
}
Avatar billede olebole Juniormester
10. maj 2006 - 17:18 #14
roenving >> hvorfor så ikke bare:
    if(!indsend.tlf.value.match(/^\d{8}$/)){
Avatar billede roenving Novice
11. maj 2006 - 12:09 #15
For at udelukke numre, der starter med 0 !-)
Avatar billede olebole Juniormester
11. maj 2006 - 16:08 #16
Du er zqda osse så smaaaart!  ;D
Avatar billede b_ Nybegynder
14. maj 2006 - 14:23 #17
Me like ;) Roenving, smid lige et svar, så du kan få din velfortjente del af kagen...
Avatar billede roenving Novice
14. maj 2006 - 23:05 #18
Velbekomme '-)
Avatar billede roenving Novice
14. maj 2006 - 23:16 #19
-- og tak for point ;~}
Avatar billede softspot Forsker
14. maj 2006 - 23:17 #20
Tak for point :)
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