Javascript if werkt niet volledig

  • Hallo iedereen


    ben al een aantal uurtjes aan het prutsen met een fout, maar ik snap echt totaal niet waarom het niet volledig werkt.
    Ik heb bootstrap radio buttons, en je kan in een tabel meerdere items toevoegen waarbij je dan een extra rij krijgt zoals hierop 2 rijen vertoont zijn.


    Bij één rij werkt het, het probleem is dat als ik een 2de rij toevoeg de 'if' alleen bij de tweede word uitgevoerd en niet bij de eerste, ookal is die checked.
    Zou iemand weten wat het probleem is? Zo ziet de if eruit:
    In de for-loop worden ze allebei uitgevoerd, maar in de if komt altijd alleen de laatste erdoor.
    Nochtans zijn er meerdere checked, zoals je hier kan zien:


    Dit is dan het stukje code dat niet wil werken om één of andere reden, heb de inhoud van de if niet getoond maar met een log in de console keek ik hier of ze erdoor kwamen.

    JavaScript
    for (i = 1; i <= parseInt(aantal); i++) { 
     console.log('Test: ' + i);
     if ($('#fpgcheck' + i).is(':checked')) { ..... }
    }


    Alvast bedankt! :)

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Ik zal het eens proberen als ik thuis ben, maar denk wel niet dat het aan de for ligt aangezien ze in die console.log allemaal worden doorlopen, het probleem is dat alleen de laatste die doorlopen word bij de if true is tijdens ze allemaal true zouden moeten zijn.

  • maar in de if komt altijd alleen de laatste erdoor.

    Waar blijkt dit uit? Zit er mogelijk een fout in die code? En er kan er maximaal ook maar "een doorkomen", het betreft immers een radiobutton? Het is sowieso vreemd dat je meerdere radiobuttons met dezelfde naam kunt checken, dit is geen standaard gedrag?


    Misschien als je de naam "options" verandert in options[<id van de huidige rij>], anders overschrijf je alles elke rij opnieuw :p.

  • Ik denk dat die wel in de goeie richting is, maak anders even een https://jsfiddle.net/ aan dan kunnen we wat makkelijker helpen

    Oke die zal aanmaken als ik thuis ben, kan niet verbinden met mijn host hier op mijn werk.


    Waar blijkt dit uit? Zit er mogelijk een fout in die code? En er kan er maximaal ook maar "een doorkomen", het betreft immers een radiobutton? Het is sowieso vreemd dat je meerdere radiobuttons met dezelfde naam kunt checken, dit is geen standaard gedrag?
    Misschien als je de naam "options" verandert in options[<id van de huidige rij>], anders overschrijf je alles elke rij opnieuw :p.

    Het betreft één radiobutton, maar je kan meerdere rijen in de table toevoegen zoals op de foto te zien is en dan zijn er dus meerdere groepen radiobuttons. Ik check de radiobuttons met hun id die altijd uniek is ('fpgcheck1', 'fpgcheck2', ...).
    Zou het eraan liggen dat ze allemaal dezelfde name hebben? Hier had ik nog niet aan gedacht aangezien ik denk dat in javascript de name niet veel doet, maar ik die alleen nodig zou hebben in php?

  • Heb de namen eens aangepast naar zoals jij voorstelde met de eerste groep als name options[1] en tweede groep options[2] maar het is nog altijd alleen de laatste die erdoor komt.


    Zo ziet de html er dus uit: (Sorry dat ik het zo onhandig in foto's stop maar kan niet met ftp verbinden momenteel)


    Dit is hetgeen wat ik heb ingevuld en aangeduid aan de radiobuttons:


    En hier is dan de console waar ik zie dat ze wel allebei in de for voorkomen maar alleen de laatste door de if komt (kan ik zien doordat er checked en dan zijn id erachterstaat)


    Ik begrijp dat het onhandig is om dit probleem zo op te lossen, zal daarom als ik thuis ben ervoor zorgen dat jullie mijn code uitgebreider kunnen bekijken.

  • Had het geprobeerd langs element inspecteren op chrome omdat ik mijn host niet kon bereiken van op het werk, maar nu ik het aanpas op de host zelf werkt het wel ineens.


    Het lag inderdaad aan de name zoals Fangor zei, bedankt iedereen voor de hulp! Nu kan ik weer verder :)

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!