Jesper Larsen <jellerhimself@hotmail.com> writes:
> Jeg synes det virker meget tilfældigt, om mine henvisninger til
> en function virker...
Jeg kan godt garantere at det ikke er tilfældigt. Ugennemskueligt måske
:)
> F.eks har jeg oplevet at jeg ikke kunne få et link til en
> function til at virke, men da jeg så bare ændrede navnet til ét
> bogstav. Vupti...
Det lyder som et kendt problem ...
> Men det eksempel jeg har nu er noget lign.
>
> <script languange='javascript' type='text/javascript'>
> function runde() {
> document.forms["runde"].submit();
> }
Bingo, det var det.
Dit problem er at du har
1. En global funktion kaldet "runde"
2. En form med name="runde"
3. Du bruger Internet Explorer.
IE har den feature at den gør navngivne elementer tilgængelige som
globale variable med samme navn. Det vil sige at den forsøger at gøre
din form tilgængelig som en global variabel med navnet "runde". Derved
overskriver den din funktion!
Prøv at skrive dette i adresselinjen:
javascript:alert(runde);
og se hvad den skriver i alert'en.
> <form action=* method=post name=runde>
> <select onchange="runde()" name=runde>
Hov, du har faktisk *to* elementer med name="runde". Det burde
ikke være et problem, men jeg er sikker på at IE nok skal få
noget sjovt ud af det.
Så, reglen: Lad aldrig dine javascript-variable have samme navn som en
name- eller id-attribut på et element på siden. Pas også på med at
give elementer samme navn som eksisterende javascript-egenskaber.
Eksempel der ikke virker:
---
<form action="">
...
<input name="submit" type="button"
onclick="this.form.submit()";>
</form>
---
(her vil input-elementet med navn "submit" overskrive metoden "submit"
på form-elementet).
Held og lykke!
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'