Avatar billede pnr Nybegynder
18. juni 2003 - 13:38 Der er 12 kommentarer og
1 løsning

Validering af mange felter

Jeg har ca 25 felter jeg skal validere på, hvis der er indtasted noget i en af dem skal den submitte ellers skal der komme en fejl.

Mine felter hedder data, olddate, olddate19, olddate20 osv. + nogle andre af et andet navn.

Jeg har started det på følgende måde:

if(document.form.date.value == '' && document.form.olddate.value OSV.)

Men er der en smartere måde jeg kan validere det på for det bliver jo en kæmpe linie!
Avatar billede roenving Novice
18. juni 2003 - 13:47 #1
Hvis dine felter er nummererede kan man jo:

fot (i=0;i<13;i++){
  if (document.formNavn.elements['olddate'+i].value==""){
    return false;//eller hvad du nu vil
  }
}

en anden måde er at opbevare feltnavnene i et array:

var checkFelter = ['date','olddate','olddate19','olddate20'];

for (i=0;i<checkFelter.length;i++){
  if (document.formNavn.elements[checkFelter[i]].value==""){
    return false;//eller hvad du nu vil
  }
}

-- ganske utestet, men ideen skinner vist igennem ...
Avatar billede pnr Nybegynder
18. juni 2003 - 14:00 #2
Fin ide med det array, smid et svar så er der point!
Avatar billede roenving Novice
18. juni 2003 - 14:01 #3
Velbekomme '-)
Avatar billede pnr Nybegynder
18. juni 2003 - 14:01 #4
Hvordan kan jeg "klippe" en linie over og forsætte på næste linie?
Avatar billede roenving Novice
18. juni 2003 - 14:06 #5
??

Du kan bare fortsætte linjen til langt udover kanten ...

var checkFelter = ['date','olddate','olddate19','olddate20','olddate21','olddate219','olddate220','olddate22','olddate319','olddate320','olddate23','olddate419','olddate420','olddate24','olddate519','olddate520','olddate25','olddate619','olddate620','olddate26','olddate719','olddate720','olddate27','olddate819','olddate820','olddate28','olddate919','olddate920','olddate29'];
Avatar billede roenving Novice
18. juni 2003 - 14:06 #6
-- og tak for points ;~}
Avatar billede pnr Nybegynder
18. juni 2003 - 15:30 #7
Ja men for overskulighedens skyld ville det være rart at kunne dele linien
Avatar billede roenving Novice
18. juni 2003 - 15:33 #8
Du kan blive ved med at tilføje, men så skal du skrive aktivt:

var checkFelter = ['date','olddate','olddate19','olddate20'];

checkFelter[checkFelter.length] = 'olddate21'
checkFelter[checkFelter.length] = 'olddate22'
checkFelter[checkFelter.length] = 'olddate23'
checkFelter[checkFelter.length] = 'olddate24'
Avatar billede pnr Nybegynder
18. juni 2003 - 15:34 #9
Ja ok, men kan man ikke skrive et tegn som fortæller at linien fortsætter på næste linie?
Avatar billede roenving Novice
18. juni 2003 - 15:38 #10
Nej ...
Avatar billede pnr Nybegynder
20. juni 2003 - 09:12 #11
Hvorfor virker det her ikke?

var checkFelter = ['newdate','olddate','olddate19','olddate20','olddate21','olddate22','olddate23','olddate24','olddate25','olddate26','olddate27','olddate28','olddate29','olddate30','olddate31','olddate32','olddate33','olddate34','olddate35','olddate36','olddate37','olddate38','olddate39','olddate43','olddate44'];
var i;
for (i=0;i<checkFelter.length;i++){
  if (document.uploadeform.[checkFelter[i]].value==''){
    alert('Du skal indtaste en dato!');
    return false;
  }
}
Avatar billede roenving Novice
21. juni 2003 - 14:23 #12
Prøv med:

if (document.uploadeform.elements[checkFelter[i]].value==""){
Avatar billede pnr Nybegynder
23. juni 2003 - 09:32 #13
TUSIND TAK FOR HJÆLPEN!

I øvrigt kan man dele en linie ved hjælp af "+"

eks.

var checkFelter = ['date','olddate',+
'olddate19','olddate20',+
'olddate21','olddate219'];
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