login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[JS] Optellen (Opgelost)

Offline dimb - 24/12/2008 18:26
Avatar van dimbNieuw lid Hallo,

Ik ben een beetje aan het oefenen met JS maar het wil niet echt echt lukken 
Als ik iets invoer gebeurd er niks, ik denk dat het voorbeeld alles duidelijk maakt.

Wat doe ik nu precies fout, en wat moet ik veranderen om het werkend te maken.

  1. <script type="text/javascript">
  2.  
  3. var opslag = new Array();
  4.  
  5. function opslag(aantal,inhoud,id){
  6.  
  7. var hoeveel = aantal*inhoud;
  8. opslag[id] = hoeveel;
  9.  
  10. recalc()
  11. }
  12.  
  13. function recalc(){
  14. var aantal = 0;
  15.  
  16. for (i=0;i<opslag.length;i++)
  17. {
  18. aantal = aantal+opslag[i];
  19. }
  20. document.getElementById("aantal").innerHTML = aantal;
  21. }
  22. </script>
  23.  
  24. <input type="text" name="1" size="1" onchange="opslag(this.value,'4','1');"> Auto (4 mensen)<br />
  25. <input type="text" name="2" size="1" onchange="opslag(this.value,'50','2');"> Bus (50 mensen)<br />
  26. <input type="text" name="3" size="1" onchange="opslag(this.value,'150','3');"> Vliegtuig (150 mensen)<br />
  27.  
  28. <span id="aantal">0</span> mensen


Dimby

8 antwoorden

Gesponsorde links
Offline Lino - 24/12/2008 21:41
Avatar van Lino Nieuw lid Doe eens een ; achter recalc()
Offline dimb - 24/12/2008 21:59 (laatste wijziging 24/12/2008 22:00)
Avatar van dimb Nieuw lid Na wat aanpassing heb ik de volgende nog steeds niet werkende code

  1. <script type="text/javascript">
  2.  
  3. var opslag = new Array();
  4.  
  5. function opslag(aantal,inhoud,id){
  6.  
  7. var hoeveel = aantal*inhoud;
  8. opslag[id] = hoeveel;
  9.  
  10. recalc();
  11. }
  12.  
  13. function recalc(){
  14. var aantal = 0;
  15.  
  16. for (i=0;i<opslag.length;i++)
  17. {
  18. aantal = aantal+opslag[i];
  19. }
  20. document.getElementById("aantal").innerHTML = aantal;
  21. }
  22. </script>
  23.  
  24. <input type="text" name="1" size="1" onchange="opslag(this.value,4,0);"> Auto (4 mensen)<br />
  25. <input type="text" name="2" size="1" onchange="opslag(this.value,50,1);"> Bus (50 mensen)<br />
  26. <input type="text" name="3" size="1" onchange="opslag(this.value,150,2);"> Vliegtuig (150 mensen)<br />
  27.  
  28. <span id="aantal">0</span> mensen


Paul
Offline Lino - 24/12/2008 22:14
Avatar van Lino Nieuw lid Volgens mij moet je ook opslag doorgeven met de functie recalc()
Offline dimb - 24/12/2008 22:19
Avatar van dimb Nieuw lid Hoe bedoel je? Recalc gebruikt toch de array?
Offline Lino - 24/12/2008 22:22
Avatar van Lino Nieuw lid Volgens mij moet je de array mee doorsturen.
Offline Gerard - 24/12/2008 22:27
Avatar van Gerard Ouwe rakker Je input velden hebben geen value. Je gebruikt er nu de name voor?
Offline vinTage - 24/12/2008 22:39
Avatar van vinTage Nieuw lid var opslag EN function opslag..ik gok dat dat een raar conflikje zal opleveren ?
Offline henver - 24/12/2008 22:50
Avatar van henver HTML gevorderde
  1. <script type="text/javascript">
  2. window.onload = function(){
  3. var inputs = document.getElementById('inputs').getElementsByTagName('input');
  4. for(var i=0; i < inputs.length;i++){
  5. inputs[i].onkeyup = function(){
  6. var name = this.name;
  7. var id_inhoud = name.split('-');
  8. var id = id_inhoud[0];
  9. var inhoud = id_inhoud[1];
  10. var aantal = this.value;
  11. var hoeveel = aantal*inhoud;
  12. var current = document.getElementById('aantal').innerHTML;
  13. document.getElementById('aantal').innerHTML = parseFloat(current) + hoeveel;
  14. }
  15. }
  16. }
  17.  
  18. </head>
  19. <div id="inputs">
  20. <input type="text" name="1-4" size="1" value=""> Auto (4 mensen)<br />
  21. <input type="text" name="2-50" size="1" value=""> Bus (50 mensen)<br />
  22. <input type="text" name="3-150" size="1" value=""> Vliegtuig (150 mensen)<br />
  23. </div>
  24. <span id="aantal">0</span> mensen
  25. </html>


Dit werkt voor zover er niets aangepast wordt. Dus er moet nog wel wat aan veranderd/toegevoegd worden.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.242s