Avatar billede laksen Nybegynder
20. april 2004 - 11:02 Der er 4 kommentarer og
1 løsning

Variabel fra funktion til funktion

Jeg har følgende kode:

function validering_1(){
  if(document.form.felt1.value==''){
    besked = 'fejlmeddelelse1';
  }
}
function validering_2(){
  if(document.form.felt2.value==''){
    besked = 'fejlmeddelelse2';
  }
}
//...
function validering(){
  var besked = '';
  validering_1();
  validering_2();
//...
  if(besked==''){
    document.form.submit();
  }else{
    alert(besked);
  }
}

På siden kaldes funktionen "validering" således: <form name="form" onsubmit="validering();return false;">

Hvis input-feltet "felt1" eller "felt2" ikke er udfyldt, skulle den alerte værdien af "besked". Imidlertid kan funktionen "validering" ikke få fat i variablen "besked" i funktionerne "validering1", "validering2" osv.

Kan dette problem løses?
Avatar billede roenving Novice
20. april 2004 - 11:14 #1
En variabel er lokal, hvis den er deklareret inde i en funktion med var, så det gøres rasende simpelt ...

-- forøvrigt kan det gøres noget nemmere:

<form name="form1" onsubmit="validering(this);return false;">

var besked = '';

function validering_1(f){
  if(f.felt1.value==''){
    besked = 'fejlmeddelelse1';
  }
}
function validering_2(f){
  if(f.felt2.value==''){
    besked = 'fejlmeddelelse2';
  }
}
//...
function validering(f){
  besked = '';
  validering_1(f);
  validering_2(f);
//...
  if(besked==''){
    f.submit();
  }else{
    alert(besked);
  }
}

-- og jeg ændrede navnet på formen, dat det bestemt er tåbeligt at risikere, at browseren bliver forvirret over hvilket objekt, som adresseres 'form' den skal finde frem til ...
Avatar billede laksen Nybegynder
20. april 2004 - 11:33 #2
Det løste sådan set problemet. Så det var jo simpelt :D
Jeg havde kun kaldt de forskellige form's, felter og funktioner logiske navn for overskuelligheden skyld. Så du kan være ganske rolig, de har nogle helt unikke navne på min side.

Grunden til at jeg har gjort det på denne lidt besværlige måde er, at jeg også gerne vil kunne kalde funktionerne "validering_1", "validering_2" osv. individuelt fra siden.

Takker for hjælpen! Du kan lægge et svar.
Avatar billede roenving Novice
20. april 2004 - 11:46 #3
Velbekomme '-)

-- og det undrede mig faktisk, at du havde den opdeling på ...

Bemærkede du også, at jeg medsendte form-objektet, så scriptet ikke havde behov for at finde det frem hver gang det skulle bruges !-)
Avatar billede laksen Nybegynder
20. april 2004 - 11:49 #4
Ja tak, det er rart med lidt optimering af sin kode.... Det gør det også lidt mere overskueligt - især hvis man skal finde en fejl.

Takker igen!
Avatar billede roenving Novice
20. april 2004 - 11:58 #5
-- og jeg takker for point ;~}
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging