Avatar billede chrisrj Forsker
12. november 2018 - 14:21 Der er 6 kommentarer og
2 løsninger

Skift tekst via radio knapper

Hejsa

Ja, det burde jo være ret simpelt, men jeg er åbenbart ikke gode venner med javascripts. :-/

Jeg har to radio knapper:
<input type="radio" name="BuySell" value="B" checked="checked"> Buy<br style="clear:both;" /><input type="radio" name="BuySell" value="S" > Sell

Som skal skifte en tekst længere nede på siden.
Buy
Eller
Sell

Nogen der kan hjælpe med den? :)
Avatar billede Slater Ekspert
12. november 2018 - 14:37 #1
Der er mange måder at gøre det på. Her er en af dem:

https://jsfiddle.net/h27mjv95/
Avatar billede chrisrj Forsker
12. november 2018 - 14:41 #2
Det er helt rigtigt, men ingen af dem har virket for mig.

Og det gør denne heller ikke. :((

Der sker intet.
Avatar billede Slater Ekspert
12. november 2018 - 14:45 #3
Har du mere information om hvad der ikke virker?

Den der er testet på Edge, Chrome og Firefox, og nu har jeg også lige tjekket på Android. Jeg kan garantere det virker.

Hvilken browser? Hvad er fejlen? Hvad ser du?
Avatar billede chrisrj Forsker
12. november 2018 - 14:48 #4
Jamen, teksten skifter ikke, når jeg trykker på radioknapperne.

Jeg bruger chrome, og den siger ingen fejl. :-/

Måske mangler jeg noget kode for at aktivere scriptet?
Avatar billede Slater Ekspert
12. november 2018 - 14:52 #5
Virker stadig fint på Chrome her, hvilket det da også burde - der er ikke noget mystisk ved det.

Du har ikke fået slået Javascript fra eller sådan noget, vel? Det virker som om det bare er din browser der er noget galt med, hvis du også har prøvet flere andre uden effekt.
Avatar billede chrisrj Forsker
12. november 2018 - 14:55 #6
Dit fiddle virker fint, så min browser burde da være ok.

på min .php side har jeg koden således:

I HEAD:

        <script>
            [].forEach.call(document.getElementsByName('BuySell'), el => {
              el.addEventListener('click', event => {
                    document.getElementById('output').textContent = event.target.value === 'B' ? 'Buy' : 'Sell';
              })
            });
        </script>

I BODY:
<label>Exchange type:</label><br style="clear:both;" /><input type="radio" name="BuySell" value="B" checked="checked">Buy<br style="clear:both;" /><input type="radio" name="BuySell" value="S" >Sell<br style="clear:both;" />
                    <br />Exchange rate is: <div id="output">Buy</div><br />Exchange fee is 1 %<br />
                    <br style="clear:both;" />
Avatar billede Slater Ekspert
12. november 2018 - 14:58 #7
Det vil ikke virke fordi du udfører scriptet, som hooker ind i nogle elementer, før de elementer findes.

Byt om på rækkefølgen - læg script sektionen efter HTML'en - eller put scriptet ind i en window.addEventListener('DOMContentLoaded', event => {}); handler, så det først bliver udført efter elementerne er indlæst.
Avatar billede chrisrj Forsker
12. november 2018 - 15:01 #8
Ah, så VAR der et problem! ;p

JAS! Nu spiller det!! :D

Jeg bukker og takker for hjælpen. :) :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester