Avatar billede themepark Nybegynder
15. september 2003 - 17:10 Der er 17 kommentarer og
1 løsning

Udfør funktion, der er afhængig af input felter, straks ved load

Mit problem er at jeg har en funktion, hvor jeg tjekker på nogle værdier af nogle INPUT felter. Denne funktion skal jeg gerne have startet med det samme siden loader/er loadet. Men med onLoad er INPUT felterne jo ikke loadet endnu, så er der en anden måde hvorpå jeg kan gøre dette på?
Avatar billede nmh Nybegynder
15. september 2003 - 17:22 #1
Kan du ikke tildele dem brugbare værdier fra start. Sådan som jeg har forstået onLoad, vil disse værdier da være på plads, når onLoad gør sin ting.
Avatar billede themepark Nybegynder
15. september 2003 - 17:23 #2
Nej, for problemet er at værdierne også bliver beregnet fra start :)
Avatar billede nmh Nybegynder
15. september 2003 - 17:26 #3
Hvad skal der da til for at beregne værdierene?
Avatar billede themepark Nybegynder
15. september 2003 - 17:32 #4
Intet som helst andet end lidt JavaScript funktioner :)
Avatar billede =maddog= Nybegynder
15. september 2003 - 17:46 #5
ved onload ER input felterne loaded. onload bliver først udført når hele <body> tagget er læst.
Avatar billede nmh Nybegynder
15. september 2003 - 17:49 #6
ja men hvad er der da, der forhindrer dig i at beregne disse værdier?
Du kan vel få onLoad til at aktivere en særlig initialiseringsfunktion, der får et hele på plads.
Avatar billede bamzen Nybegynder
16. september 2003 - 07:37 #7
Maddog, i internet explorer, kan den ikke tilgå objekter der bliver oprettet efter scriptkoden, i en onload....

Storbytossen....

Du kan altid komme følgende efter din formular (altså efter at objekterne i formen med sikkerhed er loadet)

<script type="text/javascript">
myFunction()
</script>
Avatar billede =maddog= Nybegynder
16. september 2003 - 08:25 #8
<html><head><title>Untitled</title>
<script>
onload = function() {
    alert(document.getElementById("text"));
}
</script></head>
<body>
<input type="text" id="text">
</body>
</html>

det ser da ud til at den finder objektet. hvad menes der helt nøjagtigt.
Avatar billede bamzen Nybegynder
16. september 2003 - 10:54 #9
oftest har jeg oplevet det når man skal bruge document.body.offsetWidth

Så det kan ske det har noget med den måde at gøre man referere til objektet?

/BamZen
Avatar billede =maddog= Nybegynder
16. september 2003 - 13:06 #10
onload = function() {
    alert(document.body.offsetWidth);
}
virker jo også fint. Forskellen er er i <body> fortolkes det som document.body.onload, mens det i <script> som overfor fortolkes som hhv document.onload/window.onload i IE/NS. Der er jo selvsagt ikke helt det samme. Derfor ALDRIG nogensinde onload inline i <body>. Det er sjusket.
For en bekræftelse prøv:
<body onload="alert(this.onload==document.body.onload);">
Avatar billede =maddog= Nybegynder
16. september 2003 - 13:09 #11
der er vist ikke helt så konsekvent i IE. det er jo heller ikke nogen hemmelighed længere at IE er en mærkelig browser.
Avatar billede bamzen Nybegynder
16. september 2003 - 13:14 #12
Hehe, godt så!

/BamZen
Avatar billede =maddog= Nybegynder
16. september 2003 - 13:42 #13
jamen det er nogen gange til at få grå hår af...
window.onload = function() {
    alert(document.body.onload);
}
alerter (forkert) window.onload i IE, mens NS alerter undefined som den skal (jeg har ikke defineret document.body.onload nogen steder).
Desuden kan man slet ikke skrive
document.body.onload = function() {
    alert(document.body.onload);
}
Det er altså en mærkelig browser.
Avatar billede bamzen Nybegynder
16. september 2003 - 13:59 #14
det undrede mig også at du havde svaret sådan tidligere, du plejer jo at have styr på dit js ;-)
Avatar billede =maddog= Nybegynder
16. september 2003 - 14:27 #15
tjoe. vi har vist alle en grænse. :D
Avatar billede bamzen Nybegynder
16. september 2003 - 14:30 #16
Mod mærkelige browsere kæmper man ofte forgæves!
Avatar billede themepark Nybegynder
17. september 2003 - 00:22 #17
Damn, det var dog en del indlæg...men sjovt nok fik jeg kun e-mail omkring 3 af dem :p

Nå, men det jeg sagde er ikke helt rigtigt...jeg skal beregne nogle værdier ud fra nogle JavaScript funktioner, og så tildele dem til de tekstfelter, jeg har...og det hele skal gøres så snart siden loader...og ja, jeg bruger IE :)

Så det vil altså sige, at jeg bør starte funktionen til allersidst på siden, som bamzen foreslår eller har jeg misforstået noget?
Avatar billede themepark Nybegynder
17. september 2003 - 04:31 #18
He...jeg fandt ud af hvad der var galt...jeg kan sagtens starte en funktion i onLoad, som bruger mine INPUT felter...problemet var blot at jeg havde glemt at lave en FORM på siden, og dermed også at angive forms[0] :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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