Avatar billede loukas Mester
21. marts 2004 - 23:10 Der er 14 kommentarer og
1 løsning

validering af form - er input et tal ?

Jeg har dette script til validering,
men mangler at kontroller et felt kaldet 'vaegt'
det skal være et tal flere brugerer skriver f.eks.
500g
En alert('Vægten skal angives i kg')
vil være på sin plads :-)

scriptet:

<script type="text/javascript">

function validering()
  {
  error = 0;

  if((document.forms[0].varenavn.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet: VareNavn ');
    document.forms[0].varenavn.focus();
    error = 1;       
  }

  if((document.forms[0].VareBeskrivelse.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet: VareBeskrivelse ');
    document.forms[0].VareBeskrivelse.focus();
    error = 1;       
  }
 
  if((document.forms[0].kobspris.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet: Købspris ');
    document.forms[0].kobspris.focus();
    error = 1;       
  }
 
  if((document.forms[0].salgspris.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet: Salgspris ');
    document.forms[0].salgspris.focus();
    error = 1;       
  }
 
 



  if(error == 0)
  document.forms[0].submit();   
  }

</script>
Avatar billede skovenborg Nybegynder
21. marts 2004 - 23:19 #1
tænker du på:
if (!document.forms[0].vaegt.match(/[0-9]+kg/i)) {
    alert("Du skal skrive en vægt i kg");
    document.forms[0].vaegt.focus();
    error = 1;
}
Avatar billede skovenborg Nybegynder
21. marts 2004 - 23:22 #2
og det skulle selvfølgelig være:
if (!document.forms[0].vaegt.value.match(/[0-9]+kg/i)) {

hvis du kun vil have tal skal du bare slette kg så der står:
if (!document.forms[0].vaegt.match(/[0-9]+/i)) {
Avatar billede roenving Novice
21. marts 2004 - 23:23 #3
Tjah hvad får du, og hvad vil du acceptere ?-)
Avatar billede roenving Novice
21. marts 2004 - 23:23 #4
>>ulrik

-- hvorfor bruger du ikke \d i stedet for [0-9] ?-)
Avatar billede skovenborg Nybegynder
21. marts 2004 - 23:25 #5
roenving (eller jes ;-) >>
for sjov :-) - eller faktisk fordi jeg ikke lige kunne huske om det var \d eller \D og gad ikke slå det op... så det blev bare [0-9] ;-)
Avatar billede roenving Novice
21. marts 2004 - 23:38 #6
Okay !-)

De store bogstaver i regExps er normalt negeringer, så:

(val.match(/^\d+$/))?true:false giver samme svar som

(!val.match(/\D/g))?true:false
Avatar billede skovenborg Nybegynder
21. marts 2004 - 23:46 #7
okay - det var lige det jeg ikke kunne huske. Tak for tippet :-)
Avatar billede loukas Mester
22. marts 2004 - 00:36 #8
jeg vil kun accepterer tal ;-)
også decimal..
der strår kg efter feltet således:

<input type=text name=vaegt> kg
Avatar billede roenving Novice
22. marts 2004 - 00:46 #9
Decimal i engelsk/amerikansk notation eller dansk/kontinental ?-)

Lav kaldet sådan:

<form ... onsubmit="return validering(this)">

-- og så scriptet sådan:

<script type="text/javascript">
function validering(f){
  if(f.varenavn.value==''){
    alert('Du skal udfylde feltet: VareNavn ');
    f.varenavn.focus();
    return false;
  }
  if(f.VareBeskrivelse.value==''){
    alert('Du skal udfylde feltet: VareBeskrivelse ');
    f.VareBeskrivelse.focus();
    return false;
  }
  if(f.kobspris.value=='')){
    alert('Du skal udfylde feltet: Købspris ');
    f.kobspris.focus();
    return false;
  }
  if(f.salgspris.value==''){
    alert('Du skal udfylde feltet: Salgspris ');
    f.salgspris.focus();
    return false;
  }
  if(!f.vaegt.value.match(/^\d+([\.\,]\d+)?$/)){       
    alert('Du skal udfylde feltet: Vægt ');
    f.vaegt.focus();
    return false;
  }

  return true;
</script>
Avatar billede loukas Mester
22. marts 2004 - 00:59 #10
Jeg har prøvet med dit forslag, men siden bliver udført med fejl på side og den gule 3-kant nede i venstre hjørne :-(
Avatar billede roenving Novice
22. marts 2004 - 01:00 #11
Uff ...

  }
  if(!f.vaegt.value.match(/^\d+([\.\,]\d+)?$/)){       
    alert('Du skal udfylde feltet: Vægt ');
    f.vaegt.focus();
    return false;
  }

  return true;
}
</script>
Avatar billede roenving Novice
22. marts 2004 - 01:01 #12
-- der manglede en } til sidst !-|
Avatar billede loukas Mester
22. marts 2004 - 10:10 #13
Tusind tak for hjælpen, men prøv at se denne linie.
if(f.kobspris.value=='')){

Det tog mig en krig som begynder at finde den ;-)

Du skal gi' mig et svar hvis du vil have points
Avatar billede roenving Novice
22. marts 2004 - 21:35 #14
Ja, der havde jeg klippet mig igennem for hurtigt ...

-- ellers velbekomme '-)
Avatar billede roenving Novice
28. marts 2004 - 19:56 #15
-- og tak for 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