Functies samenvoegen

  • Onderwerp starter Onderwerp starter Wiv
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Wiv

Nieuwe gebruiker
Lid geworden
26 jul 2008
Berichten
4
Hallo,

Weet iemand hoe ik onderstaande functies kan samenvoegen?

Functie 1:

Code:
function checkForm( ) 
{ 
valid = true; 

if ( document.invoer.adviseur.selectedIndex == 0 ) 
{ 
document.getElementById("adviseurError").style.display = "block"; 

valid = false; 

} 

return valid; 
}

Functie2:

Code:
function checkForm2( ) 
{ 
valid = true; 

if ( document.invoer.terecht.checked == false ) 
{ 
document.getElementById("terechtError").style.display = "block"; 

valid = false; 

} 

return valid; 
}
 
Nou ik wil van beide functies 1 functie maken omdat ik via onsubmit maar maximaal 1 functie kan aanroepen.

Aangezien de functies hetzelfde doen, alleen voor een ander veld in het formulier denk ik dat het mogelijk moet zijn om ze samen te voegen, ik weet alleen niet hoe...
 
Simpelweg het if block van functie 2 onder het if blok van de ander plakken. De variable valid is een boolean die op false wordt gezet wanneer er een fout is. Hij wordt geinitialiseerd op "true" (geen fouten) en wordt op "false" gezet wanneer er fouten zijn. Vervolgens returned de functie de waarde van de variable valid. Op die manier kun je dus makkelijk meerdere checks invoegen in één functie.

Code:
function checkForm( ) 
{ 
  valid = true; 

  if ( document.invoer.adviseur.selectedIndex == 0 ) 
  { 
    document.getElementById("adviseurError").style.display = "block"; 
    valid = false; 
  } 

  if ( document.invoer.terecht.checked == false ) 
  { 
    document.getElementById("terechtError").style.display = "block"; 
    valid = false; 
  } 

  return valid; 
}




Daarnaast, als de functies te gecompliceerd zijn om samen te voegen kun je altijd iets als dit doen:
Code:
function realCheckForm()
{
  return checkForm() && checkForm2();
}
 
Heel erg duidelijk op deze manier, ook de uitleg is duidelijk. Nu snap ik er weer wat meer van!

Bedankt!
 
Ik meende dat je meerdere functie gewoon aan kan roepen.
Kwestie van een ; achter de vorige functie zetten.

Code:
onsubmit="checkForm();checkForm2()"
Uiteraard is het gebruik maken van een enkele functie natuurlijk vele malen beter maar het is volgens mij dus wel mogelijk.
 
dat kan inderdaad, maar dan wordt het formulier gewoon verstuurd ook al geeft een van de twee functies aan dat het formulier niet verstuurd moet worden.

Wat wel zou kunnen is onsubmit="return check1()&&check2();"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan