Avatar billede pablo Nybegynder
20. maj 2003 - 13:00 Der er 9 kommentarer

Dynamisk validering af formfelter

Jeg skal bruge en funktion til dynamisk at validere formfelter.

Formfelterne udskrives fra en database, så jeg ved ikke på forhånd hvor mange formfelter der er på en side, og hvad deres navne er. Når jeg submitter de enkelte forme, så skal der ske automatisk feltvalidering på dem.

Er der en frisk haj der har de gyldne ord til hvordan det kan løses?
Avatar billede roenving Novice
20. maj 2003 - 13:04 #1
Jamen, så skal du jo sammen med dine felter levere et skema at validere efter ...

Hvis du bare skal teste for om der er fyldt noget i felterne, er det til at løse, men ... ?-)
Avatar billede doodoo Novice
20. maj 2003 - 13:05 #2
ville vel være nemmere i php eller asp ?
Avatar billede roenving Novice
20. maj 2003 - 13:08 #3
Eksempel, hvor du bare har en masse tekst-felter og der 'bare' skal skrives noget i dem alle:

function valider(f){
  var inps=document.getElementsByTagName('INPUT');
  for (i=0;i<inps.length;i++){
    if (inps[i].value==""){
      alert("Udfyld alle felter");
      inps[i].focus();
      return false;
    }
  }
}

hth
jes
Avatar billede roenving Novice
20. maj 2003 - 13:09 #4
>>doodoo

nemmere for fru Hansen, som sidder og bruger ti minutter på at udfylde 100 felter og så skal vente på at hendes 28.8-modem bruger først 3 minutter på at sende og derefter genloade hele siden og skal starte forfra ???
Avatar billede pablo Nybegynder
20. maj 2003 - 13:25 #5
I databasen indikerer jeg om hvert enkelt felt skal valideres eller ej.
Kan jeg på en eller anden måde lægge feltnavnene ind i et array når jeg skriver felterne ud på skærmen, og hvis det er angivet at de skal tjekkes, så når formen submittes loopes dette array igennem i en valideringsfunktion?

Koden til siden er lavet i ASP
Avatar billede roenving Novice
20. maj 2003 - 13:47 #6
Lav et skyggefelt, med type=hidden -- placer dem _lige_ efter hinanden, så kan vi finde den værdi (altså skal det valideres?-) og så reagere ordentligt ...
Avatar billede doodoo Novice
20. maj 2003 - 15:29 #7
okay okay :S
Avatar billede roenving Novice
20. maj 2003 - 15:57 #8
Eksempel, hvis inputboxen og hidden input har samme navgivningsskema:

function valider(f){
  var intx;
  var inhd;
  var inps=document.getElementsByTagName('INPUT');
  for (i=0;i<inps.length;i++){
    if (inps[i].type=="text"){
      intx[intx.length]=inps[i]
    }else{
    (inps[i].type=="hidden"){
      intx[inhd.length]=inps[i]
    }
  }
  for (i=0;i<intx.length;i++){
    for (j=0;j<inhd.length;j++){
      if (intx[i].name.substring(3)==inhd[j].name.substring(3) && inhd[j]=="validate" && intx[i]==""){
        alert("Udfyld alle felter");
        intx[i].focus();
        return false;
      }
    }
  }
}

Med samme endelse på text og hidden-boxene, f.eks txt01 og hid01

hth
jes
Avatar billede Slettet bruger
20. maj 2003 - 16:35 #9
Du kan også bare give de tekstfelter, der skal valideres, en bestemt class.
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