Avatar billede Den_nemme Nybegynder
05. januar 2012 - 16:08 Der er 13 kommentarer og
1 løsning

Validere nummer

Hej

Jeg vil gerne være sikker på, at mine brugere kun kan skrive tal i min formular under Phone og andere steder, hvor indholdet skal være tal. Jeg har koden nedenfor, som virker fint, hvis jeg skal være sikker på at et felt er udfyldt, men hvordan kan jeg ændre den, så jeg også sikre at indholder er nummerisk?

if ( form.tel.value.length > 0 ) {
  } else {
      alert ("Telephone required.");
      form.tel.focus();
      return false;
  };
Avatar billede olebole Juniormester
05. januar 2012 - 16:33 #1
<ole>


if (!(/^[0-9]+$/).test(form.tel.value)) {
    // Feltet indeholder intet - eller andet end tal
}


/mvh
</bole>
Avatar billede The_Buzz Novice
05. januar 2012 - 16:33 #2
Avatar billede olebole Juniormester
05. januar 2012 - 16:34 #3
- men tror du ikke, alle de, der plejer at dele telefonnumre op i blokke med mellemrum, bliver forvirret over at få en fejl?
Avatar billede Den_nemme Nybegynder
05. januar 2012 - 16:58 #4
Olebole: Jeg kan ikke få det til at virke. Mener du, at jeg skal lave det som nedenfor?

if(tel.match(/^[0-9\+ ]+$/)) {
        return true;
    } else {
    alert ("Telephone required.");
      form.tel.focus();
    return false;
  };

eller:

if ( form.tel.value.length > 0 ) {
  } else {
      alert ("Telephone required.");
      form.tel.focus();
      return false;
  };

if (!(/^[0-9]+$/).test(form.tel.value)) {
}
Avatar billede olebole Juniormester
05. januar 2012 - 17:09 #5
Det kommer anpå, hvordan din kode ser ud - og hvad du vil
Avatar billede Den_nemme Nybegynder
05. januar 2012 - 17:15 #6
Jeg vil jo egentlig bare være sikker på, at feltet er udfyldt og at det er udfyldt nummerisk. Koden ser sådan ud:

<script type="text/JavaScript">
if ( form.tel.value.length > 0 ) {
  } else {
      alert ("Telephone required.");
      form.tel.focus();
      return false;
  };
</script>

Det virker fint hvis jeg bare vil have feltet til at være required, men jeg vil gerne have tilføjet at det skal være nummerisk.
Avatar billede olebole Juniormester
05. januar 2012 - 17:24 #7
Det er ikke den kode, du bruger
Avatar billede Den_nemme Nybegynder
05. januar 2012 - 17:31 #8
Øh, jeg forstår ikke hvad du mener...?

Her er koden med alle required felter:

<script type="text/JavaScript">
<!--
function valider ( form ) {
  if ( form.firma.value.length > 0 ) {
  } else {
      alert ("Company name required.");
      form.firma.focus();
      return false;
  };

if ( form.navn.value.length > 0 ) {
  } else {
      alert ("Name required.");
      form.navn.focus();
      return false;
  };
 
  if ( form.adresse.value.length > 0 ) {
  } else {
      alert ("Address required.");
      form.adresse.focus();
      return false;
  };


  if ( form.postnr.value.length > 0 ) {
  } else {
      alert ("Postal code required.");
      form.postnr.focus();
      return false;
  };
 
  if ( form.by.value.length > 0 ) {
  } else {
      alert ("City required.");
      form.by.focus();
      return false;
  };
 
  if ( form.country.value.length > 0 ) {
  } else {
      alert ("Country required.");
      form.country.focus();
      return false;
  };
 
  if ( form.tel.value.length > 0 ) {
  } else {
      alert ("Phone required.");
      form.tel.focus();
      return false;
  };
 
if ( /^[\da-z\._\-]{1,50}@[\da-z\._\-]{1,50}\.[\da-z_]{1,3}$/.test(form.mail.value) ) {
  } else {
      alert ("E-mail address incorrect.");
      form.mail.focus();
      return false;
  }; 

  return true;
};   
//-->
</script>

Feltet i formularen ser sådan ud:
<input name="tel" type="text" id="tel" size="50">
Avatar billede olebole Juniormester
05. januar 2012 - 17:43 #9
Du laver godt nok en pudsig if/else konstruktion, men dette burde virke:


<script type="text/JavaScript">
<!--
function valider ( form ) {
  if ( form.firma.value.length > 0 ) {
  } else {
      alert ("Company name required.");
      form.firma.focus();
      return false;
  };

if ( form.navn.value.length > 0 ) {
  } else {
      alert ("Name required.");
      form.navn.focus();
      return false;
  };
 
  if ( form.adresse.value.length > 0 ) {
  } else {
      alert ("Address required.");
      form.adresse.focus();
      return false;
  };


  if ( form.postnr.value.length > 0 ) {
  } else {
      alert ("Postal code required.");
      form.postnr.focus();
      return false;
  };
 
  if ( form.by.value.length > 0 ) {
  } else {
      alert ("City required.");
      form.by.focus();
      return false;
  };
 
  if ( form.country.value.length > 0 ) {
  } else {
      alert ("Country required.");
      form.country.focus();
      return false;
  };
 
  if ( form.tel.value.length > 0 ) {
  } else {
      alert ("Phone required.");
      form.tel.focus();
      return false;
  };
 
  else if (!(/^[0-9]+$/).test(form.tel.value)) {
      alert ("Wrong phone number format.");
      form.tel.focus();
      return false;
  };
 
if ( /^[\da-z\._\-]{1,50}@[\da-z\._\-]{1,50}\.[\da-z_]{1,3}$/.test(form.mail.value) ) {
  } else {
      alert ("E-mail address incorrect.");
      form.mail.focus();
      return false;
  }; 

  return true;
};   
//-->
</script>

Avatar billede Den_nemme Nybegynder
05. januar 2012 - 18:32 #10
Så melder den fejl på denne linie:
else if (!(/^[0-9]+$/).test(form.tel.value)) {
Avatar billede olebole Juniormester
06. januar 2012 - 01:05 #11
Slet else
Avatar billede Den_nemme Nybegynder
06. januar 2012 - 06:52 #12
Ja da! Tusind tak. Gider du svare?

God weekend!
Avatar billede olebole Juniormester
06. januar 2012 - 13:51 #13
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes. God weekend til dig også  =)
Avatar billede Den_nemme Nybegynder
06. januar 2012 - 14:25 #14
Hold da op, hvor er du ualmindelig rar! :)
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