Avatar billede simono Nybegynder
10. november 2004 - 16:21 Der er 6 kommentarer og
1 løsning

Validering af prisfelt

Hvordan laver jeg en regel, som kun godtager tal og punktum. Dvs. at der ikke i tekstfeltet må være bogstaver, mellemrum, bindestreg osv.

Spørgsmålet kan summeres op til hvordan jeg udtrykker at en værdi er et tal.
Avatar billede roenving Novice
10. november 2004 - 16:26 #1
f.eks.

if(!f.pris.value.match(/^\d+(\.\d{1,2})?$/)){
  alert('Prisen skal skrives som korrekt tal !-)');
  f.pris.focus();
  return false;
}
Avatar billede simono Nybegynder
10. november 2004 - 16:49 #2
function validering()
{
  error = 0;
  if((document.forms[0].pris.value=='') && (error==0)) 
  {       
    alert('Prisfeltet skal udfyldes!');
    document.forms[0].pris.focus();
    error = 1;       
  }
  if(error == 0)
  document.forms[0].submit();   
}

Funktionen virker godt, når prisfeltet er tomt, men ikke når det er udfyldt fungerer det ikke
Avatar billede simono Nybegynder
10. november 2004 - 16:50 #3
De variabler, som bliver postet bliver aldrig modtaget når document.forms[0].submit(); bliver kørt...
Avatar billede roenving Novice
10. november 2004 - 16:54 #4
function validering(f){
  if(!f.pris.value.match(/^\d+(\.\d{1,2})?$/)){
    alert('Prisen skal skrives som korrekt tal (tal og evt. decimal-punktum !-)');
    f.pris.focus();
    return false;
  }
  return true;
}

<form action="dinSide.asp" method="post" onsubmit="return validering(this)">
  Pris: <input type="text" name="pris" size="15">
  <input type="submit" value="Indsend">
</form>
Avatar billede simono Nybegynder
10. november 2004 - 16:59 #5
Kanon! det virker perfek...
poster du lige et svar så du kan få point. Eventuelt også hvor jeg kan læse mere om validering med JS
Avatar billede roenving Novice
10. november 2004 - 17:07 #6
Lige præcis validering, hrm ...

-- men her benytter vi os af en regular expression, som er en enormt kraftfuld metode til at teste tekststrenge, udskifte dele af den og sådan noget, det kan du læse noget om her:

http://www.javascriptkit.com/javatutors/re.shtml

-- og generelt kan man sige, at det smarte i det script, du viste, er helt væk, hvis man ikke vil vise en samlet fejlmeddelelse for alle fejl ...

-- og en udvidelse af scriptet er principielt en simpel ting:

function validering(f){
  if(!f.pris.value.match(/^\d+(\.\d{1,2})?$/)){
    alert('Prisen skal skrives som korrekt tal (tal og evt. decimal-punktum !-)');
    f.pris.focus();
    return false;
  }
  /*Denne blok kan gentages for hvert eneste felt i formen*/
  if(f.varenavn.value==""){
    alert('Varebetegnelsen skal angives');
    f.varenavn.focus();
    return false;
  }
  /*Blok slut*/
  return true;
}

Velbekomme '-)
Avatar billede roenving Novice
10. november 2004 - 17:14 #7
-- og 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