Avatar billede Mik2000 Professor
24. maj 2007 - 20:23 Der er 2 kommentarer og
1 løsning

Form validation

Hej

Jeg er ved at prøve at lave et tjek på forms.
Jeg har sat følgende krav:
- Det skal kunne bruges forms med forskellige navne
- Det skal tjekke hvert felt og skrive med det samme hvis der er fejl
- Feltnavnet har forskellige naven

Jeg har lavet en funktion som denne:
--------------------------------------------------
function validering_felt_req(formn, feltn, div_navn){ // funktion får form navn, feltnavn og div layer navn til meddelelser
  var formnavn = formn; // Gemmer i global variabel
  var feltnavn = feltn; // Gemmer i global variabel
  var div_felt = div_navn; // Gemmer i global variabel
  if(document.formnavn.feltnavn.value=='')  {    // Hvis feltet er tomt
      document.getElementById(divnavn).value = 'Skal udfyldes'; // Sæt div vinduet med meddelelsen
      document.getElementById(divnavn).style.visibility = 'visible'; // vis vindue med meddelelse
  } else { // ellers
      document.getElementById(divnavn).value = 'Udfyldt korrekt'; // Skriv success meddelelse i feltet
      document.getElementById(divnavn).style.visibility = 'visible'; // Vis feltet
  } // slut if
} // slut funktion
--------------------------------------------------

Der er fejl i den fordi jeg ikke kan bruge medsendte variabler i denne sætning:
if(document.formnavn.feltnavn.value=='')  {   

Hvad er fejlen? ... hvorfor kan jeg ikke bruge variablerne?

Jeg er nogenlunde grøn i javascript, så jeg er åben for alle foreslag/forbedringer mv hvis du også skulle have lyst til at komme med noget
Avatar billede Mik2000 Professor
24. maj 2007 - 23:44 #1
Lykkes. Send this.value med i stedet
Avatar billede roenving Novice
27. maj 2007 - 00:13 #2
Hvis du skal lave generelle valideringer, kan det betale sig at lave en for hver formular, medmindre du har uanede mængder af disse ...

Grundlæggende bør man kalde valideringen fra onsubmit på form-tagget og så præsentere en fejl-dialog ved fejl, der så resulterer i at formen ikke sendes, normalt ved at checke felt efter felt, og hvis fejl så findes, afbryde afsendelsen med det samme !-)

-- evt. kan man ved større formularer samle sammen til en samlet fejlmeddelelse ...

<form ... onsubmit="return valider(this);">

<script type="text/javascript">
function valider(f){
  if(f.navn.value==""){
    alert("Du skal angive et navn");
    f.navn.focus();
    return false;
  }

//gentages for alle felter, der skal valideres

//-- og afsluttes med:

  return true;
}
</script>
Avatar billede Mik2000 Professor
16. marts 2008 - 21:33 #3
Hej

Her skal den validerer så snart man har skrevet og igen når man trykker
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