Avatar billede myztic Nybegynder
24. november 2004 - 13:18 Der er 4 kommentarer og
1 løsning

formular og images og sourcekald

Hejsa folkens! - jeg er en anelse ny i javascript programmering, og morer mig gevaldigt med at sidde og lege med nogle forskellige funktioner osv...

men jeg er nu stødt på et problem... jeg bruger nogle formular-felter (type="image") - til at lave nogle images til noget leg med et skak-bræt...

og nu kan jeg ikke kalde .src
jeg bruger følgende kald:
document.[formular].[name].src = etc.

men jeg får at vide at .src = null or not an object... konkrete eksempler herunder:

function my_click(field2) {
  //field_check(field2);
    document.write(document.chessb.g_1.src);
   
}

<form name="chessb">
<input type="image" name="g_1" src="img/w_bonde.gif" class="img" onClick="my_click('g_1');">

fejlen jeg får hedder:
Error: 'document.chessb.g_1.src' is null or not an object

Hvad skal jeg gøre - kan jeg simpelthen ikke bruge input typen image? - er det noget andet jeg skal kalde for at få informationen i src? - og hvis nej og nej... er der nogle andre forslag til hvordan jeg kan skifte billeder - helst inden for en formular, men ellers, alle forslag velkomne :D

150point til det svar der får mig videre ;)
-Myztic
Avatar billede fennec Nybegynder
24. november 2004 - 13:30 #1
Det er src du skal bruge. Her er en måde at ændre et billed når man klikker på det:

<img src="img/w_bonde.gif" onclick="this.src='img/EtAndetBilled.gif'">
Avatar billede olebole Juniormester
24. november 2004 - 15:06 #2
<ole>

Sagen er, at type="image" er semantisk temmelig specielt. Elementet hører således ikke til i formens element-hieraki, hvorfor du ikke kan kalde den med den alm. 'form-sti'. Kun i Opera opfører elementet sig på dette punkt som andre form-elementer gør.

Du må derfor tildele elmentet en ID og kalde med:

function my_click(field2) {
    document.getElementById(field2).src = "img/pic2.gif";
}

<form name="chessb" onsubmit="return false">
<input type="image" name="g_1" id="g_1" src="img/w_bonde.gif" class="img" onClick="my_click('g_1');this.blur()">

... 'this.blur()' er blot tilføjet for at fjerne den stiplede ramme, elementet får, når det modtager fokus.

/mvh
</bole>
Avatar billede myztic Nybegynder
24. november 2004 - 21:49 #3
Tak Olebole - det var lige den slags svar jeg manglede :)
Avatar billede olebole Juniormester
24. november 2004 - 22:09 #4
Jamen, det var da godt ... og tak for points  :)
Avatar billede roenving Novice
19. december 2004 - 12:45 #5
-- er det ikke bare at overføre selve feltet som parameter ?-)

function my_click(field2) {
    field2.src = "img/pic2.gif";
}

<form name="chessb" onsubmit="return false">
<input type="image" name="g_1" id="g_1" src="img/w_bonde.gif" class="img" onClick="my_click(this);this.blur()">
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