Avatar billede sanoy Nybegynder
03. juli 2005 - 23:55 Der er 13 kommentarer

Images knap i <input>

Hej Eksperter


Jeg har et lille problem med denne kilde-kode. Den henviser ikke rigtig når man klikker på knappen. Hvad har jeg gjort galt?

<select name="Destination">
    <option value="http://www.eksperten.dk/">eksperten</option>
</select>
<input type="image" src="discover.gif" onclick="location.href=this.form.Destination.value;">

På forhånd tak!


Sanoy
Avatar billede nielle Nybegynder
04. juli 2005 - 06:57 #1
Det er vigtigt at der rent faktisk er valgt noget. Derfor en selected:

<select name="Destination">
<option value="http://www.eksperten.dk/" selected>eksperten</option>
</select>

- og derefter er det:

<input type="image" src="discover.gif" onclick="document.forms[0].Destination.value;">
Avatar billede roenving Novice
04. juli 2005 - 11:32 #2
-- er du sikker på, at du har en form ?-)

-- og så plejer jeg at benytte mig af en 'død' option, så det fremgår, at der ikke er valgt noget:

<form action="">

<select name="Destination">
    <option>Vælg destination</option>
    <option value="http://www.eksperten.dk/">eksperten</option>
</select>
<input type="image" src="discover.gif" onclick="dest=this.form.Destination.value;if(dest){this.form.action=dest;}else{return false;}">

</form>

>>nielle

-- jeg forstår ikke lige at du går fra en ret sikker metode (this.form) til en metode, som kræver omhu hver eneste gang en lille bitte smule skal ændres i html-dokumentet (document.forms[0] !-)
Avatar billede roenving Novice
04. juli 2005 - 11:34 #3
Hrm, det burde jo egentlig så også udføres i onsubmit på form-tagget:

<form action="" onsubmit="dest=this.Destination.value;if(dest){this.action=dest;}else{return false;}">

<select name="Destination">
    <option>Vælg destination</option>
    <option value="http://www.eksperten.dk/">eksperten</option>
</select>
<input type="image" src="discover.gif">

</form>
Avatar billede olebole Juniormester
04. juli 2005 - 13:22 #4
<ole>

- og så er der lige den lille, semantiske pudsighed omkring denne element-type, at knappen ikke selv ved, den tilhører formen.
this.form - som jo ellers er en bekvem måde at adressere formen på - duer med andre ord ikke, når man bruger type="image"  :)

/mvh
</bole>
Avatar billede olebole Juniormester
04. juli 2005 - 13:25 #5
- så udfra det synspunkt var det ganske fornuftigt af nielle at overgå til en anden adressering ... selvom det er badre at lægge kaldet på onsubmit-event'en  ;o)
Avatar billede olebole Juniormester
04. juli 2005 - 13:26 #6
Hmmm ... måske, det også er 'badre' ... bedre er det i hvert fald  :D
Avatar billede sanoy Nybegynder
04. juli 2005 - 21:44 #7
Hej igen.

Nu har jeg gennemprøvet dem. De virker udemærket, men den laver adressen således:

http://www.eksperten.dk/?Destination=http%3A%2F%2Fwww.eksperten.dk%2F&x=8&y=20

I stedet for kun "http://www.eksperten.dk/", da der ellers kommer problemer med enkelte sider.
Avatar billede nielle Nybegynder
04. juli 2005 - 22:40 #8
Prøv lige at poste din nuværende kode.
Avatar billede sanoy Nybegynder
04. juli 2005 - 22:43 #9
<form action="">

<select name="Destination">
    <option>Vælg destination</option>
    <option value="http://www.eksperten.dk/">eksperten</option>
</select>
<input type="image" src="discover.gif" onclick="dest=this.form.Destination.value;if(dest){this.form.action=dest;}else{return false;}">

</form>
Avatar billede nielle Nybegynder
04. juli 2005 - 22:53 #10
Øh? Med den stump kode bliver din form jo aldrg submittet.
Avatar billede roenving Novice
05. juli 2005 - 11:14 #11
<form action="" method="post" onsubmit="dest=this.Destination.value;if(dest){this.action=dest;}else{return false;}">
Avatar billede olebole Juniormester
05. juli 2005 - 13:35 #12
- og så lige en undskyldning for noget vrøvl, jeg fik skrevet tidligere i denne tråd  :)

Et element af typen image kan godt referere til formen med 'this.form' - og opfører sig på denne måde som en del af formen.

Til gengæld kan andre elementer i formen ikke se elementet som hørende til formen. Man kan evt. prøve dette eksempel, der viser problematikken:

<form>
  <input name="hest" type="text"><br>
  <input name="gnu" type="image" src="test.jpg" onclick="alert(this.form)"><br>
  <button onclick="alert(this.form.gnu)">TEST</button>
</form>

'type=image' er en spøjs fætter  :)
Avatar billede nielle Nybegynder
16. august 2005 - 17:55 #13
Har du fået løst dit problem?
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