/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Forskel på input <type="button"> og <input~
Fra : Erik Ginnerskov


Dato : 30-05-07 19:43

Hej NG
Jeg sidder og undrer mig lidt. Sætter jeg en onclick-event på en button,
fungerer det fint. Det forventer jeg også.

Knap 1 og 2

Sætter jeg i stedet en action, virker det ikke.

Knap 3 og 4

Skifter jeg button ud med image, virker det igen.

Knap 5 og 6

Nogen logisk forklaring?

http://hjemmesideskolen.dk/usenet/buttontest.asp

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



 
 
Birger Sørensen (31-05-2007)
Kommentar
Fra : Birger Sørensen


Dato : 31-05-07 08:01

Erik Ginnerskov wrote in dk.edb.internet.webdesign.clientside:
> Hej NG
> Jeg sidder og undrer mig lidt. Sætter jeg en onclick-event på en button,
> fungerer det fint. Det forventer jeg også.
>
> Knap 1 og 2
>
> Sætter jeg i stedet en action, virker det ikke.
>
> Knap 3 og 4
>
> Skifter jeg button ud med image, virker det igen.
>
> Knap 5 og 6
>
> Nogen logisk forklaring?
>
> http://hjemmesideskolen.dk/usenet/buttontest.asp
>
> --
> Med venlig hilsen
> Erik Ginnerskov
> http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
> http://html-faq.dk
>
>

Action er en parameter til <form> og <isindex>.
Den har så vidt jeg ved, ingen mening for hverken <input> eller <button>.

http://msdn2.microsoft.com/en-us/library/ms533063.aspx
http://www.w3.org/TR/REC-html40/interact/forms.html#adef-action

Birger

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Marten Ølgaard (31-05-2007)
Kommentar
Fra : Marten Ølgaard


Dato : 31-05-07 11:11

Grunden til at det ikke virker med button er at button ikke submitter
formen, og derfor bliver dit javascript i dit action felt ikke kaldt.

Havde du derimod brugt submit burde det virke igen.

Uanset hvad er det vist ikke "korrekt" at kalde et javascript via action
attributten, men på den anden side - virker det , så virker det.

/Marten



Erik Ginnerskov (31-05-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 31-05-07 21:37

Marten Ølgaard wrote:
> Grunden til at det ikke virker med button er at button ikke submitter
> formen, og derfor bliver dit javascript i dit action felt ikke kaldt.

Men det undrer mig, at hvis jeg skifter <input type="button"> ud med <input
type="image">, virker det alligevel - trods den manglende submit. Jeg kan
ikke få øje på logiken.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Marten Ølgaard (01-06-2007)
Kommentar
Fra : Marten Ølgaard


Dato : 01-06-07 08:33

Så vidt jeg husker submitter "image" også formen.

/Marten

"Erik Ginnerskov" <erik@donotspammeplease.invalid> skrev i en meddelelse
news:465f31d9$0$90262$14726298@news.sunsite.dk...
> Marten Ølgaard wrote:
>> Grunden til at det ikke virker med button er at button ikke submitter
>> formen, og derfor bliver dit javascript i dit action felt ikke kaldt.
>
> Men det undrer mig, at hvis jeg skifter <input type="button"> ud med
> <input type="image">, virker det alligevel - trods den manglende submit.
> Jeg kan ikke få øje på logiken.
>
> --
> Med venlig hilsen
> Erik Ginnerskov
> http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
> http://html-faq.dk
>



Birger (01-06-2007)
Kommentar
Fra : Birger


Dato : 01-06-07 12:12


"Marten Ølgaard" <oelgaard@comonto[slet her].dk> skrev i en meddelelse
news:465fcb8f$0$47367$edfadb0f@dread16.news.tele.dk...

> Så vidt jeg husker submitter "image" også formen.
>
> /Marten
>
> "Erik Ginnerskov" <erik@donotspammeplease.invalid> skrev i en meddelelse
> news:465f31d9$0$90262$14726298@news.sunsite.dk...
>> Marten Ølgaard wrote:
>>> Grunden til at det ikke virker med button er at button ikke submitter
>>> formen, og derfor bliver dit javascript i dit action felt ikke kaldt.
>>
>> Men det undrer mig, at hvis jeg skifter <input type="button"> ud med
>> <input type="image">, virker det alligevel - trods den manglende submit.
>> Jeg kan ikke få øje på logiken.


Hvem har sagt, der er en logik?

<input type"submit"..> og <input type="image"..> er ens, bortset fra at den
ene viser en tekst på en knap, den anden et billede. Begge submitter den
form de er indsat i, når der klikkes på dem - og er de eneste der gør det
som default.

<button> er noget andet, og kræver til forskel fra (alle) <input..> også et
afslutnings tag.
Teksten på <button> skal skrives mellem de to tag.
Ved alle former for knapper med <input> ( submit, reset og button) skal
teksten på knappen angives i value=".."

For at gøre forvirringen total, findes også en <input type="button"..>. Her
skal teksten skrives som value="..", men der er ikke nogen default onclick -
den submitter ikke formen.
<input type="button"..> er således blot en anden måde at skrive <button>
på - og er det eneste <input..> tag, som "i virkeligheden" ikke har noget
med <form> at gøre.

Man kan godt bruge både <button> og <input type="button"..> i en form. Når
formen bliver submittet, medsendes teksten på knappen, hvis denne har en
name attribute angivet.
f.eks vil
<button name="knap">Kliktekst</button>
og
<input type="button" name="knap" value ="Kliktekst">
begge medsende "knap=Kliktekst" i formens data.
Men ingen af dem vil af sig selv indsende formen.
Vil man have dem til det, skal der tilføjes en onclick handler.
Hvis formen er defineret som <form id="FormNavn"..>
kan
onclick="FormNavn.submit();"
gøre det i IE. Eller
onclick="document.getElementById( FormNavn).submit();"
til de andre (også IE)...

submit og image udgaverne af <input> indsender formen.
button udgaven af <input> ligner en knap - men er ikke en submit
<button> er en knap, som (egentlig) ikke har noget med <form> at gøre

Og alt det her, hører vist egentlig til i HTML gruppen? ;>)

Birger



Erik Ginnerskov (02-06-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-06-07 00:10

Birger wrote:

> Hvem har sagt, der er en logik?
>
> <input type"submit"..> og <input type="image"..> er ens, bortset fra
> at den ene viser en tekst på en knap, den anden et billede.

Det er altså det, der er logiken.

> Begge
> submitter den form de er indsat i, når der klikkes på dem - og er de
> eneste der gør det som default.

> <button> er noget andet, og kræver til forskel fra (alle) <input..>
> også et afslutnings tag.

Den lavede jeg lige en test på også (er ikke lagt ud), her er det ligemeget,
om javascriptet er i formens action eller i en onclick på knappen og om man
bruger metoden post eller get. Men det forventede du vel også, at det er.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Birger (02-06-2007)
Kommentar
Fra : Birger


Dato : 02-06-07 01:10

"Erik Ginnerskov" <erik@donotspammeplease.invalid> skrev i en meddelelse
news:4660a74c$0$90265$14726298@news.sunsite.dk...
....
>> <button> er noget andet, og kræver til forskel fra (alle) <input..>
>> også et afslutnings tag.
>
> Den lavede jeg lige en test på også (er ikke lagt ud), her er det
> ligemeget, om javascriptet er i formens action eller i en onclick på
> knappen og om man bruger metoden post eller get. Men det forventede du vel
> også, at det er.


Er ikke lige sikker på hvad du mener.
En <button> har vist ikke noget med <form> at gøre - er i hvert fald ikke
sikker på, at man altid kan regne med at den vil submitte en form.
Med mindre man selv gør det i onclick eventen, selvfølgelig...

Og en button kan ikke poste.
method="post", betyder at data bliver sendt i en separat http request, og
ikke som en del af "kommandolinien", der aktiverer programmet der kaldes på
serveren.
method="get", betyder at data sendes som en del af "kommandoen" til
serveren.
De tilføjes efter programnavnet som ?data1=vædi1&data2=værdi2 osv.
Der er forskel.
Hvis du bruger "get", kan brugeren se data i adresselinien - hvis du bruger
"post" kan de ikke ses.
Der kan også være tilfælde hvor data fylder så meget, at de ikke kan
"get"'tes...
Endelig betyder det noget for programmet der skal modtage data.
I PHP bruger man 2 sæt variable - $_GET[ 'data']; hvis der "gettes" og
$_POST['data']; hvis der "postes".
Nogen gange vil programmet selv finde data, selv om man bruger den forkerte
metode - andre vil det ikke.
Ikke sikker på hvordan, men det kan formentlig variere fra udbyder til
udbyder. Kan også forestille mig det er afhængigt af versionen af php.
Du kan altså godt være heldig at det fungerer, selv om det ikke defineres
rigtigt - men "ligemeget" om man bruger get eller post, bliver det vist
aldrig... ;>)

Birger




Erik Ginnerskov (02-06-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-06-07 22:45

Birger wrote:

> Er ikke lige sikker på hvad du mener.

Mine forsøg blev affødt af en diskussion om, hvordan man kan sende brugeren
videre til en ny side ved tryk på en knap. Jeg husker ikke, hvilken gruppe
det var i eller indholdet i emnelinjen.

Forsøgene viste, at <input type="button"... ikke fungerer, med mindre
adressen står som en javascriptfunktion i en onclick-event.

Sættes adressen som værdi i formularens action, virker det ikke.

> [Snip en længere, teknisk udredning om forskellene i funktionen på post og
> get]

> Du kan altså godt være heldig at det fungerer, selv om det ikke
> defineres rigtigt - men "ligemeget" om man bruger get eller post,

Nu var formålet alene at bruge knappen som menupunkt til en ny side og jeg
fik afprøvet, hvilke muligheder der så eksisterer.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Birger (02-06-2007)
Kommentar
Fra : Birger


Dato : 02-06-07 11:56


"Erik Ginnerskov" <erik@donotspammeplease.invalid> skrev i en meddelelse
news:465dc5be$0$90263$14726298@news.sunsite.dk...
> Hej NG
> Jeg sidder og undrer mig lidt. Sætter jeg en onclick-event på en button,
> fungerer det fint. Det forventer jeg også.
>
> Knap 1 og 2
>
> Sætter jeg i stedet en action, virker det ikke.
>
> Knap 3 og 4
>
> Skifter jeg button ud med image, virker det igen.
>
> Knap 5 og 6
>
> Nogen logisk forklaring?
>
> http://hjemmesideskolen.dk/usenet/buttontest.asp
>
> --
> Med venlig hilsen
> Erik Ginnerskov
> http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
> http://html-faq.dk
>

Erik
Fra siden
http://hjemmesideskolen.dk/html/testsider/onclick1.asp :
------------
<p><input type="button" class="knapper fl" value="Testknap"
onclick="javascript:location.href='onclick2.asp';" />onclick2.asp</p>

<code>&lt;p&gt;&lt;input type="button" value="<span
class="intxt">Knaptekst</span>"
onclick="javascript:location.href='onclick2.asp';" /&gt;&lt;/p&gt;</code>

------------
Der er forskel på den kode der testes og den der angives - endda fremhævet
af en eller anden årsag.
Der står forkert tekst på knappen.
Og det samme gælder for siderne 'onclick2.asp' og 'onclick3.asp'.

Birger



Erik Ginnerskov (02-06-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-06-07 22:44

Birger wrote:

> Fra siden
> http://hjemmesideskolen.dk/html/testsider/onclick1.asp :
> ------------
> [snip kode]
> ------------
> Der er forskel på den kode der testes og den der angives - endda
> fremhævet af en eller anden årsag.
> Der står forkert tekst på knappen.
> Og det samme gælder for siderne 'onclick2.asp' og 'onclick3.asp'.

Det må jeg da hellere få set nærmere på. Det skal sgu være korrekt.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Erik Ginnerskov (02-06-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-06-07 23:29

Birger wrote:

> ------------
> <p><input type="button" class="knapper fl" value="Testknap"
> onclick="javascript:location.href='onclick2.asp';" />onclick2.asp</p>
>
> <code>&lt;p&gt;&lt;input type="button" value="<span
> class="intxt">Knaptekst</span>"
> onclick="javascript:location.href='onclick2.asp';"
> /&gt;&lt;/p&gt;</code>
> ------------
> Der er forskel på den kode der testes og den der angives - endda
> fremhævet af en eller anden årsag.

Jeg kan altså ikke se andre forskelle end, at i testknappen er indsat en
class="fl", der floater knappen left og i den viste kode er knapteksten
indsat i et span, der gør teksten sort og med en anden font.

Det har ikke nogen funktion at vise float-koden på de sider og at sætte span
ind i value på knappen vil blive vist som tekst.

Har du set mere graverende forskelle?

> Der står forkert tekst på knappen.

Det er da vist fluekn......, er det ikke?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Birger (03-06-2007)
Kommentar
Fra : Birger


Dato : 03-06-07 00:45

"Erik Ginnerskov" <erik@donotspammeplease.invalid> skrev i en meddelelse
news:4661ef27$0$90270$14726298@news.sunsite.dk...
> Birger wrote:
>
>> ------------
>> <p><input type="button" class="knapper fl" value="Testknap"
>> onclick="javascript:location.href='onclick2.asp';" />onclick2.asp</p>
>>
>> <code>&lt;p&gt;&lt;input type="button" value="<span
>> class="intxt">Knaptekst</span>"
>> onclick="javascript:location.href='onclick2.asp';"
>> /&gt;&lt;/p&gt;</code>
>> ------------
>> Der er forskel på den kode der testes og den der angives - endda
>> fremhævet af en eller anden årsag.
>
> Jeg kan altså ikke se andre forskelle end, at i testknappen er indsat en
> class="fl", der floater knappen left og i den viste kode er knapteksten
> indsat i et span, der gør teksten sort og med en anden font.
>
> Det har ikke nogen funktion at vise float-koden på de sider og at sætte
> span ind i value på knappen vil blive vist som tekst.
>
> Har du set mere graverende forskelle?
>
>> Der står forkert tekst på knappen.
>
> Det er da vist fluekn......, er det ikke?
>


Måske... ;>)

Det springer i mine øjne, at de to tekster på knapperne ikke er ens.
Altså er jeg nødt til at se koden, for at afgøre om der er andet i det
"dokumenterede", der ikke svarer til det faktisk testede.

Birger



Erik Ginnerskov (03-06-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 03-06-07 21:27

Birger wrote:

> Det springer i mine øjne, at de to tekster på knapperne ikke er ens.
> Altså er jeg nødt til at se koden, for at afgøre om der er andet i det
> "dokumenterede", der ikke svarer til det faktisk testede.

Allright, nu er knapteksten identisk med den, der er vist i kodebokse.

Som sagt er der sat float:left på den viste knap for at kunne sætte tekst
til højre for den og der er med span ændret tekstfarve og font på
knapteksten i kodeboksen.

Derudover kan jeg ikke få øje på nogen forskelle og de omtalte forskelle har
ikke noget med knapfunktionen at gøre, det er rent kosmetik.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste