[js]getElementById gaat fout ofzo:S

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Evertt_IA
  • Registratie: April 2008
  • Laatst online: 02-05-2021
Als je deze code in een html-bestand hebt:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
        <title>Form test</title>
        <script type="text/javascript">
            window.onload = addo('brood', 'nog een broodje', 'nog_een_broodje');

            function addo (id, opttext, optvalue) {
                var sel = document.getElementById(id);
                alert (id+' '+sel);
                sel.options.add(new Option(opttext, optvalue));
            }
        </script>
    </head>
    
    <body>
        <div id="container">
            <form action="broodjes.php" method="post">
                <table>
                    <tr>
                        <td><input type="text" name="aantal"></td>
                        <td><select id="brood" name="brood">
                            <option value="wit">Wit</option>
                            <option value="bruin">Bruin</option>
                            <option value="chiabatta">Chiabatta</option>
                        </select></td>
                    </tr>
                </table>
            </form>
        </div>
    </body>
</html>


Dan zou je toch een alert moeten krijgen met het volgende?
'brood [Object]'
Maar ipv [Object] krijg ik null. :S
Hij vindt het object dus blijkbaar niet.
Terwijl je toch duidelijk kan zien dat er een <select> is met als id 'brood'.
Het zal vast wel weer een domme fout zijn, maar ik zie het weer eens niet.
Ik heb geprobeerd om de name van de <select> te veranderen, misschien struikelt getElementById daarover, maar dat was het niet.

Iemand een idee?

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Nu online

orf

de functie wordt nu uitgevoerd zonder argumenten omdat je niet op deze manier een functie kan aanroepen in de onload. Fout dus, wat Cheatah zegt. :)

Zo werkt het wel:

JavaScript:
1
window.onload = function(){addo('brood', 'nog een broodje', 'nog_een_broodje');}

[ Voor 7% gewijzigd door orf op 30-07-2008 22:42 ]


Acties:
  • 0 Henk 'm!

  • Evertt_IA
  • Registratie: April 2008
  • Laatst online: 02-05-2021
Dat werkt, maar waarom kwam het woord 'brood' dan toch door?
dat slaat echt zwaar nergens op :S

[edit]sterker nog, alle argumenten komen gewoon door als je die alert uitvoert met alle argumenten

[ Voor 57% gewijzigd door Evertt_IA op 30-07-2008 22:39 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Evertt_IA schreef op woensdag 30 juli 2008 @ 22:37:
Dat werkt, maar waarom kwam het woord 'brood' dan toch door?
dat slaat echt zwaar nergens op :S
Dat slaat wél ergens op. De addo functie wordt direct aangeroepen, en het resultaat van die aanroep (de return value dus) wordt aan window.onload toegekend. En daar heb je dus niks aan.

Acties:
  • 0 Henk 'm!

  • Evertt_IA
  • Registratie: April 2008
  • Laatst online: 02-05-2021
Ooooh, zo.
thanks mensen! :)

[ Voor 47% gewijzigd door Evertt_IA op 30-07-2008 22:42 ]