Avatar billede makralle Nybegynder
09. marts 2008 - 13:36 Der er 15 kommentarer og
1 løsning

funktion i JavaScript

Jeg har et begynderspørgsmål angående det at kalde en funktion i JavaScript.

Har lavet en knap som skal skrive lidt tekst. hvorfor virker funktionen ikke?:

<html>
<head>
<script type="text/JavaScript">
function skriv() {
this.form.display1.value="hej"
}
</script>
</head>

<body>

<h1>Function</h1>
<form name=inputfil>
<input type="textboks" name="display1" value="">
<br>
<input type="button" value="skriv hej" onclick=function skriv()>



<h1>test</h1>
<form name=inputfil>
<input type="textboks" name="display2" value="">
<br>
<input type="button" value="skriv hej" onclick=this.form.display2.value="hej">


</body>

</html>
Avatar billede softspot Forsker
09. marts 2008 - 13:38 #1
Prøv:

<input type="button" value="skriv hej" onclick="skriv()">
Avatar billede softspot Forsker
09. marts 2008 - 13:39 #2
Ehm... måske:

dette script:


<script type="text/JavaScript">
function skriv(o) {
  o.form.display1.value="hej";
}
</script>


og denne knap:

<input type="button" value="skriv hej" onclick="skriv(this)">
Avatar billede makralle Nybegynder
09. marts 2008 - 13:46 #3
Ja det sidste virker! Hvorfor skriver man o.form....?
- sender du et svar..
Avatar billede thesurfer Nybegynder
09. marts 2008 - 14:15 #4
Funktionen "skrive" tager imod et argument. I denne kode kaldes argumentet "o". Man kan også have kaldet variablen "hugo"..
Så havde der bare stået: hugo.form...

Argumentet i kaldet, som er "this", er en reference til selve objektet, hvorfra funktionen "skriv" kaldes..

Dvs, da knappen kalder funktioner "skriv", og sender argumentet "this" med, så kalder knappen altså funktionen "skriv" og sender en reference til sig selv med, som argument..

Når funktionen så bruger o.EtEllerAndet, er det altså i forhold til objektet/reference, som jo er knappen..

Det blev lidt indviklet, men håber at det hjalp lidt.. :-)
Avatar billede makralle Nybegynder
09. marts 2008 - 16:53 #5
thesurfer -> tak for forklaringen. Jeg troede ikke man behøvede at give funktionen et argument i kaldet, når funktionen skriver noget forudbestemt - men det henviser altså til knappen.
Avatar billede thesurfer Nybegynder
09. marts 2008 - 17:09 #6
Du kunne også bare bruge:

document.getElementsByTagName("display1")[0].value = "blah blah blah";

Du skal bare huske på, at getElementsByTagName (bruges sammen med name="nogether") returner en array, imodsætning til getElementById (bruges sammen med id="nogether")..

id er unikt, hvilket betyder at man ikke må bruge id="nogether" flere gange.. man skal kalde de andre elementer for noget andet.. f.eks. id="nogetandether"..


Husk at alle forms skal lukkes igen med "</form>"..

Dvs:

<form ..osv..>

..dine input elementer og andet indsættes her..

</form>


Og husk: Et element i form1 ikke kan tilgå elementer i form2.. det skal være i samme form, hvis man skal bruge noget i stil med ".form.navn.value"..
Avatar billede thesurfer Nybegynder
09. marts 2008 - 17:25 #7
Forklaringen på o.form.display1.value="hej" er:

"objektet"s "form"s "element med navnet display"s værdi sættes til "hej"

Grunden til at jeg bruger en masse "", er pga "s".. som i:

objektet's (dette er selve objekt-referencen)
form's (dette er objekt-referencen "parent"/forældre/overliggende element)
element med navnet display's (child/barn/underliggende element i formen)

Så forstil dig, at den "går" op/ud, hen og ned/ind for at finde "display1"..

Lidt i stil med: http://www.webreference.com/programming/javascript/ppk1/figure8-1.gif

..hvis du f.eks. kun fokuserer på "html", "head" og "body" (og fjerner de andre fra billedet), og erstatter dem med:

"html" bliver til "form"
"head" bliver til knappen
"body" bliver til "display1"


Så giver det lidt mening.. håber jeg :-)
Avatar billede makralle Nybegynder
09. marts 2008 - 21:30 #8
thesurfer -> tak for hjælpen... jeg leger lidt videre med det.. Hvis du sender et svar er der point!
Avatar billede thesurfer Nybegynder
09. marts 2008 - 21:38 #9
Ok :-)

Jeg deler gerne med softspot, hvis han/hun får smidt et svar.. :-)
Det bliver dog nok først engang i morgen..
Avatar billede olebole Juniormester
09. marts 2008 - 22:20 #10
<ole>

"han/hun" ...?!??!! Mener strandløven virkelig, at ordet 'softspot' skulle referere til den dér ... ehhh ... ja, altså du ved ........ ehh ... den dér?

/mvh
</bole>
Avatar billede thesurfer Nybegynder
09. marts 2008 - 22:59 #11
olebole> Jeg kunne have skrevet "det".. :-)

makralle> Takker for points :-)
Avatar billede olebole Juniormester
09. marts 2008 - 23:05 #12
;D
Avatar billede roenving Novice
10. marts 2008 - 00:14 #13
-- og det var jo en meget sjov lørdag aften ,-)

-- og lidt halv-intern spas kom til at ramme din tråd, makralle !-)
Avatar billede olebole Juniormester
10. marts 2008 - 01:00 #14
- det sdavøs 'spam' ;o)
Avatar billede softspot Forsker
10. marts 2008 - 14:00 #15
Hov, den her tråd må E have glemt at sende mails til mig om :D

Hilsen (ham der) softspot
Avatar billede thesurfer Nybegynder
10. marts 2008 - 20:43 #16
softspot> Vi bad E om ikke at sende dig mails, så vi kunne bagtale dig.. ;-)

Nah.. som de siger "over there".. *beep* happens.. :-)

Vil du have dine 7,5 points, eller skal jeg snolde for alle pointsne..? :-)
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