login  Naam:   Wachtwoord: 
Registreer je!
 Forum

functie in een functie

Offline Chupskie - 19/02/2009 13:18
Avatar van ChupskieMySQL beginner
  1. function disp_text2(hond){
  2.  
  3. if(hond == 1){
  4.  
  5. function disp_text3(id){
  6.  
  7. if(id == 1){
  8. obj = document.getElementById(1);
  9. obj.style.display = '';
  10. }else{
  11. obj = document.getElementById(1);
  12. obj.style.display = 'none';
  13. }
  14.  
  15. }
  16.  
  17. }
  18.  
  19. }


Als ik beide functie appart aanroep, werkt het wel, maar als ik ze wil combineren werkt het niet, en komt hij maar tot de eerste functie.

Kan dit niet met javascript? Of doe ik gewoon iets verkeerd?

11 antwoorden

Gesponsorde links
Offline Wim - 19/02/2009 13:25
Avatar van Wim Crew algemeen Waarom zet je een functie in een functie?

Je kan lijn 5 t.e.m. 15 (de functie disp_text3) gewoon buiten de functie zetten en de functie aanspreken daar...
Offline Chupskie - 19/02/2009 13:32
Avatar van Chupskie MySQL beginner Klopt, maar ze worden allebij appart aangesproken. Wat ik bedoel:

Ik heb een formulier, met o.a. een aantal select boxen. (o.a optie1: hond/kat/overige, optie 2: M/V).

Als optie 1: hond is, en optie 2 V, moet er een extra div komen.
Alle andere opties veranderd er verder niks?

  1. <select name="hondkatoverige[]" onChange="disp_text2(this.value)" />
  2. <option value="0">Kat</option>
  3. <option value="1">Hond</option>
  4. <option value="2">Overige</option>


Kan dit niet?
Offline Wim - 19/02/2009 14:23
Avatar van Wim Crew algemeen
  1. function disp_text2(hond){
  2.  
  3. if(hond == 1){
  4. //roep hier disp_text3 aan
  5. }
  6.  
  7. }
  8.  
  9. function disp_text3(id){
  10.  
  11. if(id == 1){
  12. obj = document.getElementById(1);
  13. obj.style.display = '';
  14. }else{
  15. obj = document.getElementById(1);
  16. obj.style.display = 'none';
  17. }
  18. }


Waarom zou je het zo niet gewoon doen?
Offline Chupskie - 19/02/2009 14:31
Avatar van Chupskie MySQL beginner Omdat ik geen idee, heb hoe ik disp_text3 daar aan kan roepen?
Offline Wim - 19/02/2009 14:36
Avatar van Wim Crew algemeen disp_text3(<id>);

Waar <id> staat voor een numeriek ID.......?
Offline Chupskie - 19/02/2009 14:50
Avatar van Chupskie MySQL beginner Inderdaad, dat had ik ook geprobeerd, maar dan kom ik alleen aan het ID van deze functie, en niet van die andere functie.

Dus zo krijg ik alleen het ID, van 1 dropdown, en niet van beide?
  1. function disp_text2(hond){
  2. if(hond == 1){
  3. disp_text3(hond);
  4. }
  5. }

Nog meer tips?
Offline Ibrahim - 19/02/2009 18:19
Avatar van Ibrahim PHP expert Nee, de parameter moet een numerieke waarde hebben.
Offline Chupskie - 19/02/2009 19:45
Avatar van Chupskie MySQL beginner De parameter bevat een nummerieke waarde:

<select name="hondkatoverige[]"
onChange="disp_text2(this.value)" />

<option value="0">Kat</option>

Nog meer ideeén?
Offline Koen - 19/02/2009 19:48 (laatste wijziging 19/02/2009 19:49)
Avatar van Koen PHP expert Je moet dan ook niet "this.value" gebruiken 

  1. this.options[this.selectedIndex].value


Edit: Gebruik eens code tags...
Offline Chupskie - 19/02/2009 22:30
Avatar van Chupskie MySQL beginner Ik zal het eens proberen.

"Gebruik eens code tags..." Doe ik ook iedere keer, alleen bij de laatste reactie niet, omdat ik zo de regel dik (lees: bold) kon maken zodat het ook duidelijk werd voor Ibrahim.

Maar bedankt voor de tip  
Offline PRO - 19/02/2009 22:51 (laatste wijziging 19/02/2009 22:53)
Avatar van PRO JS interesse Je kan wel een funktie in een funktie doen.
  1. function Base() {
  2. alert("init Base function");
  3. this.active = function() {
  4. alert("init Base > active");
  5. }
  6. }
  7.  
  8. var base = new Base();
  9. base.active();
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.195s