Avatar billede thingholm.dk Nybegynder
04. maj 2003 - 15:53 Der er 10 kommentarer

Validering af form

Hej

Jeg har en form til indtastning af Navn, Adresse og Postnummer. Jeg kunne godt tænke mig et script som tjekkede om alle 3 fields indeholder data og hvis de ikke gør det, skal der komme en Alert ellers skal den bare submitte min form. Jeg håber at nogen kan hjælpe.

VH

Anders Thingholm
Avatar billede orca Nybegynder
04. maj 2003 - 15:59 #1
<form action="send.asp" method="post" onSubmit="if(!validate(this)){alert('fejl')}">

<script type="text/javascript">
  function validate(objFRM)
  {
    if(objFRM.mitFelt.value.length<1)
      return false
    if(objFRM.mitFelt.value.length<1)
      return false
    ... osv ...
  }
<script>

prøv det.
Avatar billede roenving Novice
04. maj 2003 - 16:00 #2
Har du prøvet at skrive overskriften i søgefeltet -- jeg ville gætte på et 5-cifret antal svar ...
Avatar billede thingholm.dk Nybegynder
04. maj 2003 - 16:56 #3
Tak for indlæggene. Jeg har nu lavet nedenstående, men kan det ikke optimeres - evt. med en løkke:

    if (thisform.formName.value == "" || thisform.formCompany.value == "" || thisform.formAddress.value == "" || thisform.formZip.value == "" || thisform.formEmail.value == "" || thisform.formMessage.value == "") {
    if (thisform.formName.value == ""){
        thisform.formName.focus();
    }
    else if (thisform.formCompany.value == ""){
        thisform.formCompany.focus();
    }
    else if (thisform.formAddress.value == ""){
        thisform.formAddress.focus();
    }
    else if (thisform.formZip.value == ""){
        thisform.formZip.focus();
    }
    else if (thisform.formEmail.value == ""){
        thisform.formEmail.focus();
    }
    else if (thisform.formMessage.value == ""){
        thisform.formMessage.focus();
    }
   
    alert('<? echo $formText[9]; ?>');
    return false;
    } 

}

Det kunne også være godt hvis den bare kørte alle input-felterne igennem og tjekkede om der var sat nogen værdi. Hvis det ikke var tilfældet skulle den så sætte fokus på dette felt. Dvs. gøre scriptet mere dynamisk.

VH

Anders
Avatar billede roenving Novice
04. maj 2003 - 17:09 #4
Som jeg prøvede i går og i forgårs ...

function Valider(formObjekt) {
  for (i=0; i<formObjekt.elements.length; i++) {
    temp = formObjekt.elements.length[0];
    if (temp.type == "input" && temp.value == "") {
      formObjekt[temp.name].focus();
      return false;
    }
  }
  return true;
}

hth
jes
Avatar billede roenving Novice
04. maj 2003 - 17:10 #5
Kald den fra formen:

<form .... onsubmit='return Valider()'>
Avatar billede roenving Novice
04. maj 2003 - 17:11 #6
Undskyld, en lille fejl i indhakningen:

function Valider(formObjekt) {
  for (i=0; i<formObjekt.elements.length; i++) {
    temp = formObjekt.elements[0];
    if (temp.type == "input" && temp.value == "") {
      formObjekt[temp.name].focus();
      return false;
    }
  }
  return true;
}
Avatar billede roenving Novice
04. maj 2003 - 17:13 #7
Uff da:

function Valider(formObjekt) {
  for (i=0; i<formObjekt.elements.length; i++) {
    temp = formObjekt.elements[i];
    if (temp.type == "input" && temp.value == "") {
      formObjekt.elements[i].focus();
      return false;
    }
  }
  return true;
}

Så fik jeg også en pænere adressering i focus'en
Avatar billede saxtus Nybegynder
12. august 2003 - 21:35 #8
Jeg har behov for stort set det samme, det skal bare køre php. Er der nogen der kan hjælpe mig med det??
Avatar billede roenving Novice
13. august 2003 - 00:58 #9
Det'r godt nok længe siden, og jeg har vist lært noget siden, men denne funker overfor text-inputs:

function valider(f) {
  for (i=0;f.elements.length>i; i++) {
    temp = f.elements[i];
    if (temp.type == "text" && temp.value == "") {
      temp.focus();
      return false;
    }
  }
  return true;
}

-- og saxtus, hvad for et sprog du kører på serveren er fuldstændig ligegyldigt -- denne er lavet til at køre på klienten _før_ der igen oprettes forbindelse til serveren, hvilket alt andet lige sparer dig for båndbredde, brugeren for unødig tid og alle for en del besvær ...
Avatar billede saxtus Nybegynder
13. august 2003 - 09:06 #10
roenving tak for tippet, det vil jeg lige se om jeg kan hitte ud af
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