Vi skal se litt på stragier for å plukke opp data fra input-felter i
forms på en HTML-side. Det kan være flere årsaker til at vi ønsker
å inspisere slike data:
Vi ønsker å kontrollere det brukeren har skrevet før data går til tjeneren på vanlig måte.
Vi ønsker å kontrollere det brukeren har skrevet før data går til en AJAX-request.
Vi ønsker å bruke en form for å samle opp data som skal "ferdigbehandles" i
Javascript.
Vi ønsker å bruke Javascript til å samle sammen data fra en
HTML-side ved hjelp av DOM-programmering (getElementById().innerHTML)
og pakke dem i et skjult (hidden) input felt i en form
før de blir sendt.
I alle eksemplene nedenfor brukes et enkelt Pythonskript på serveren for å gi respons.
Dette skriptet, http://www.ia.hiof.no/~borres/cgi-bin/demo/std.py,
plukker ut alle parameterne og returnerer parameter og verdi pakket inn i en minimalistisk
HTML-side. Du kan se scriptet her:
std_py.html
Hva hvis vi ønsker å gjøre noe med disse dataene før de
sendes ? Vi kan bryte automatikken mellom et submit-klikk
og en action ved å plukke opp museklikket på submit.knappen.
F.eks. slik:
Vi modifiserer HTML-koden slik at vi eksplisitt returnerer en verdi fra
funksjonen vår, og vi sender med den aktuelle formen vi er inne i som parameter
La oss nå anta at vi ønsker "å sende med" data fra elementer i HTML-siden som ikke er plassert inne
i formen. F.eks. slik:
Det er en kjent problemstilling både i programmering av dialogbokser
i vanlige programmer og i handtering av forms på vevsider at bruk av
enter-tasten fra brukeren fungerer automatisk som om brukeren hadde
klikket på "default"-knappen, "ok" i dialogbokser eller "submit" i
forms. Dette oppfattes av mange som standard oppførsel og bør derfor ikke
endres. Andre finner det irriterende at et "utilsiktet" enter-trykk
skal føre til avslutning av en dialogsituasjon.
Dette lar seg kontrollere, også på forms.
Vi kan trikse litt med selve submit-mekanismen.
Skriv i de tre feltene nedenfor og se at ingen av dem fører
til "submit" når vi trykker "enter"-tasten.