Jeg har et script, hvor brugeren via en checkbox, kan få indholdet ind i et textarea (i en anden frame). Dette virker fint.
Scriptet har så en "toggler", som trigger samtlige checkboxes i en given gruppe. Checkboxene bliver alle tjekket/aftjekket som de skal, men, indholdet følger ikke med - ikke med det samme, i hvert fald.
Men fjerner jeg en af tjekboksene, så kommer indholdet fra de resterende boxe ind i textareaet som ønsket. Jeg kan derefter gen-tjekke den aftjekkede box, og så er alt indholdet der som det skal. Dette er dog et super irriterende workaround, da jeg selvfølgelig gerne vil have alt indholdet bliver pushet, lige så snart jeg aktivere toggleren.
Er der en fejl i en af de to følgende koder, eller kan dele af dem erstattes af en anden funktion, som pusher alt indholdet, uden at jeg skal af/gen-tjekke en af boxene efterfølgende?
toggle mener jeg da plejer at betyde vis/skjul og ikke check/uncheck?
Medmindre du har forkortet koden for at vise os eksempler så er noget af koden ret "dum" og dermed unødigt tung - i din updatebox laver du en variabel, textbox, som du aldrig benytter og potentielt leder du to gange efter det præcis samme element, box_id, i stedet for at lægge dén i en variabel og så genbruge den. Jeg forstår heller ikke helt hvad dit array i updatebox gør godt for.
Bortset fra det så er mit gæt, at der ikke køres de events du forventer - fx bliver en onclick ikke kørt hvis du ændrer en værdi via JS så sørg for at opsætte koden så du sender/lytter de rette events.
Hej keysersoze, kan jeg få dig til at komme med et eksempel? Jeg er ikke særlig stærk i javascript, så ville værdsætte meget hvis du kunne vise mig hvor det skal puttes ind :)
Er problemet det samme, med at jeg skal un-checke en af boxene, før resten bliver smidt ind. Kan det være en del af updatebox() der gør, at det ikke sker med det samme?
Der er ikke noget i din kode, der kalder updatebox - og der er heller ikke noget i din kode, der indsætter nogen værdier nogen steder (ud over i et array, som heller ikke bruges til noget). Ud fra den kode du giver er det umuligt at gætte sig til noget.
Som sagt, hvis jeg bruger "check-all" funktionen, sker der intet - men hvis jeg så un-checker "Name 1", så bliver 2, 3 og 4 tilføjet fuldstændig efter hensigten - der skal bare lige ske en eller anden form for trigger funktion.
Jeg håber det gør det mere overskueligt - hvis det er helt ude i skoven, må jeg prøve at nørde videre selv - men værdsætter den tid I har lagt i jeres hjælp! :)
Dernæst, som skrevet i #1, så vær sikker på hvilke events du kører kontra hvad du forventer/lytter på. Du har sat updatebox til at blive kørt på onclick men du ændrer jo bare en property. Det vil nok give mere mening at lytte på onchange.
Det som undre mig er bare, at det som sådan virker, så længe der er en af dem som bliver tjekket af. Alle boxe bliver markeret som de skal, men først når en checkes af, kommer de resterende ind i textareaet.
Så overvejede om det bare var en af kommandoerne som skulle byttes ud med noget andet.
Men jeg giver det et shot med browserværktøjerne - mange tak for din tid (og ikke mindst tålmodighed :) )
Igen pga events - hvis du klikker på en checkbox køres din updatebox fordi det er en onclick-event, som du jo lytter på, men når du opdaterer propertien via JavaScript køres eventen ikke da der jo ikke sker et klik. Til gengæld sker der en change i begge tilfælde så hvis du lytter på onchange i stedet vil det virke.
Det vil dog næppe være hensigtsmæssigt bare at skifte onclick ud med onchange for så køres updatebox lige så mange gange som der er checkboxe - det kunne derfor i stedet måske give mening bare at kalde updatebox direkte fra din checkall funktion.
Jeg har ingen anelse, for at være ærlig. Det var bare ift "Til gengæld sker der en change i begge tilfælde så hvis du lytter på onchange i stedet vil det virke." - vidst ikke om onclick skulle skiftes ud med onchange.
Er primært PHP programmør, så det er semi sort kode for mig.
Der er også forskel på onchange og som du skrev oncheck.
Som skrevet i #14, hvis du bare udskifter onclick med onchange vil din kode blive kørt lige så mange gange som der er antal checkboxe - ikke videre hensigtsmæssigt. Derfor foreslog jeg at du bare kaldte updatebox i din checkall-funktion.
Hvis du debugger, eksempelvis som jeg foreslog, så ville du kunne se hvornår hvilke funktioner kørte. Men nej, lige nu kalder du updatebox på page load og ikke på klik på checkall.
Synes godt om
Ny brugerNybegynder
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.