Avatar billede sth Novice
11. januar 2006 - 20:08 Der er 9 kommentarer og
1 løsning

validering af flere felter

hej jeg havde engang roenving til at hjælpe mig med noget ligende nedenstående, og nu i dag fanft jeg ud af at det ikke virkede, og jeg ved at det har virket jeg husker også svagt at jeg engagn lavede noget om....

mit problem er at det virker hvis jeg ikke tester på lotnummer
dette virker:
function valider(f){
 
  if(!f.rapport_kundenr.value.match(/^00\d{6}$/)){
    alert('Kundenummeret skal have 8 karakterer og starte med 00 ');
    f.rapport_kundenr.select();
    f.rapport_kundenr.focus();
    return false;
  }



var dato = f.rapport_fra_dato.value,dat;
  if(!dato.match(/^\d{2}-\d{2}-\d{4}$/)){
    alert('Startdatoen er ikke gyldig en gyldig dato');
    f.rapport_fra_dato.select();
    f.rapport_fra_dato.focus();
    return false;
  }else{
    dato = dato.split("-");
    dat = new Date(+dato[2],(+dato[1]-1),+dato[0]);
    if(dat.getFullYear()!=+dato[2]||dat.getMonth()+1!=+dato[1]||dat.getDate()!=+dato[0]){
      alert('Startdatoen er ikke gyldig en gyldig dato');
      f.rapport_fra_dato.select();
      f.rapport_fra_dato.focus();
      return false;
    }
  }
  var dato = f.rapport_til_dato.value,dat;
  if(!dato.match(/^\d{2}-\d{2}-\d{4}$/)){
    alert('Slutdatoen er ikke gyldig en gyldig dato');
    f.rapport_til_dato.select();
    f.rapport_til_dato.focus();
    return false;
  }else{
    dato = dato.split("-");
    dat = new Date(+dato[2],(+dato[1]-1),+dato[0]);
    if(dat.getFullYear()!=+dato[2]||dat.getMonth()+1!=+dato[1]||dat.getDate()!=+dato[0]){
      alert('Startdatoen er ikke gyldig en gyldig dato');
      f.rapport_til_dato.select();
      f.rapport_til_dato.focus();
      return false;
    }
  }
  return true;
}


altså virker dette IKKE:

function valider(f){
 
  if(!f.rapport_kundenr.value.match(/^00\d{6}$/)){
    alert('Kundenummeret skal have 8 karakterer og starte med 00 ');
    f.rapport_kundenr.select();
    f.rapport_kundenr.focus();
    return false;
  }



  if  (f.rapport_lotnummer.value==""||f.rapport_lotnummer.value==f.rapport_lotnummer.defaultValue){
    alert('Lotnummer skal udfyldes');
    f.rapport_lotnummer.select();
    f.rapport_lotnummer.focus();
    return false;
  }


var dato = f.rapport_fra_dato.value,dat;
  if(!dato.match(/^\d{2}-\d{2}-\d{4}$/)){
    alert('Startdatoen er ikke gyldig en gyldig dato');
    f.rapport_fra_dato.select();
    f.rapport_fra_dato.focus();
    return false;
  }else{
    dato = dato.split("-");
    dat = new Date(+dato[2],(+dato[1]-1),+dato[0]);
    if(dat.getFullYear()!=+dato[2]||dat.getMonth()+1!=+dato[1]||dat.getDate()!=+dato[0]){
      alert('Startdatoen er ikke gyldig en gyldig dato');
      f.rapport_fra_dato.select();
      f.rapport_fra_dato.focus();
      return false;
    }
  }
  var dato = f.rapport_til_dato.value,dat;
  if(!dato.match(/^\d{2}-\d{2}-\d{4}$/)){
    alert('Slutdatoen er ikke gyldig en gyldig dato');
    f.rapport_til_dato.select();
    f.rapport_til_dato.focus();
    return false;
  }else{
    dato = dato.split("-");
    dat = new Date(+dato[2],(+dato[1]-1),+dato[0]);
    if(dat.getFullYear()!=+dato[2]||dat.getMonth()+1!=+dato[1]||dat.getDate()!=+dato[0]){
      alert('Startdatoen er ikke gyldig en gyldig dato');
      f.rapport_til_dato.select();
      f.rapport_til_dato.focus();
      return false;
    }
  }
  return true;
}
Avatar billede roenving Novice
12. januar 2006 - 16:13 #1
Kan du linke til et eksempel ?-)
Avatar billede sth Novice
12. januar 2006 - 16:59 #2
Avatar billede roenving Novice
12. januar 2006 - 17:11 #3
Der findes jo heller ikke et felt, der hedder "rapport_lotnummer" !-)
Avatar billede sth Novice
12. januar 2006 - 17:42 #4
nej det har du ret i
baggrunden her for er at den rapport der dannes (altså noget ligende du du kan se ) dannes ud fra data i en database, og hvis der i databasen står at feltet lotnummer skal med vises det ellers ikke.

men ok jeg har nu fjernet valideringen på felt lot_nummer ,men det hjælper ikke
Avatar billede roenving Novice
12. januar 2006 - 17:46 #5
Prøv sådan:

  if  (f.rapport_lotnummer && (f.rapport_lotnummer.value==""||f.rapport_lotnummer.value==f.rapport_lotnummer.defaultValue)){
    alert('Lotnummer skal udfyldes');
    f.rapport_lotnummer.select();
    f.rapport_lotnummer.focus();
    return false;
  }
Avatar billede sth Novice
12. januar 2006 - 22:47 #6
ok ! det ser faktisk ud til at virke hvad var problemet ?
Avatar billede roenving Novice
13. januar 2006 - 15:32 #7
Den tester bare først om der er et element med det navn, og hvis der så er, så validerer den feltets indhold; hvis feltet ikke findes springer den resten af den validering over !-)

Velbekomme '-)
Avatar billede sth Novice
14. januar 2006 - 22:51 #8
Hov trode a jeg have accepteret dit svar... jeg beklager vente tiden
Avatar billede roenving Novice
15. januar 2006 - 04:19 #9
Tak for point ;~}
Avatar billede sth Novice
15. januar 2006 - 10:10 #10
der tager du fejl... det er mig der takker :-)
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