Lomakkeita käytetään vuorovaikutteisien www-sivujen toteutuksissa tiedon keräämisen, käsittelyn ja palautteen esittämisen välineenä.
Lomakkeissa on pakollisia osia, pakollisuus mainitaan erikseen oppaassa. Lomakkeisiin liittyy olennaisena osana input
-elementti
jolla lomakeen sisältö toteutetaan, input-elementti on esitelty eri sivulla.
Lomake toteutetaan form
-elementillä tai -elementeillä. Oppaan lomake-esimerkit eivät ole toimivia versioita,
lomakkeita käsitellään lomakkeenkäsittelijä-ohjelmilla joiden ohjelmointikielinä on esimerkiksi PHP ja JavaSript.
<form>
Lomakkeen sisältö input-elementein ja niihin liittyvine asetuksineen sekä
muut tarvittavat elementit (esim painike).
</form>
Jotta lomake on tunnistettavissa (ja CSS:llä muotoiltavissa ?) lomake tarvitsee id
-tunnisteen. Tunniste
kirjoitetaan form
-elementin alkuun seuraavasti:
<form id="osa_tilaus">
Tilaus-lomakkeen sisältö.
</form>
Lomakkeen sisällön elementit voi kirjoittaa form
-elementin ulkopuolellekin (ei suositeltavaa),
jos ne kiinnitetään form
-elementiin id
-atribuutin avulla:
<form id="osa_tilaus">
Tilaus-lomakkeen sisältö.
</form>
<input type=”text” form=”osa_tilaus”>
Atribuutti | Tarkoitus |
---|---|
action | URL-osoite (lomakkeenkäsittely-ohjelman tai email), pakollinen. |
method | Lähetystyyppi, pakollinen. Metodeita kaksi:post , palvelupyyntö palvelimelle, palvelin jää odottamaan lomakkeen loppuosaa, SUOSITELTAVIN.get , (varomaton käyttäminen voi aiheuttaa palvelinongelmia). |
enctype | Sisällön tyyppi. Määrittelyjä:application/x-www-form-urlencoded multipart/form-data text/plain |
target | Kohdekehyksen nimi. Määrittelyjä:window_name _blank _parent _self _top |
name | Lomakkeen nimi, (lomake-kentän nimeäminen esitellään muualla). |
lang, dir | Lomakkeessa käytettävä kieli ja kirjoitussuunta. |
title, style, id, class | Otsikko (title), CSS-tyylin nimi (class), paikallinen tyyliastetus (style), käytettävä tyyli tai yksiselitteinen kohta johon viitataan hyperlinkillä (id). |
accept-charset | Lomakkeen merkkiasetusten-lista, merkistön ulkopuolisten merkkien lista.Esim accept-charset="ISO-8859-1". Määrittelee hyväksyttyjen merkistöjen ulkopuolisien merkkien listan. |
accept | Sisältötyyppilista, hyväksyttävät tieto-tyypit. Esim.<input type="file" name="pic" accept="image/*"> Määrittelee pilkulla eroteltuna listana sisällön tyypit joita noudattamalla palvelin osaa käsitellä lomakkeen sisällön oikein. Ei HTML5:ssä |
autocomplete | automaattinen täydennys lomakkeen kenttiin ellei niitä ole erikseen asetettu, HTML5 |
novalidate | Lomakekenttien tarkistusten esto HTML5 |
Lomakkeen sisältämät tiedot lähetetään action
-parametrillä www-palvelimella olevaan "lomakekäsittelijä"-ohjelmalle.
Lomakekäsittelijä on ohjelma (PHP tai script) joka lähettää tiedot esim sähköpostiin tai palvelimelle esimerkiksi tietokantaan.
Lomakkeenkäsittelijä-ohjelma käsittelee tietoja palvelimen ja lomakkeen CGI-rajapinnalla sekä sijaitsee palvelimella, joko samalla kuin sivusto tai
jollain muulla palvelimella.
Atribuutin action
arvona voi olla esimerkiksi sähköpostiosoite tai lomakkeenkäsittelijä-ohjelman "nimi".
Lomake sähköposti-osoitteeseen (muista tietoturva-riskit):
<form action="mailto:veijo.vastaanottaja@gmail.com">
Lomakkeen varsinainen sisältö
</form>
Lomakekäsittelijälle-ohjelmalle (PHP-ohjelma):
<form action="lomakekasittely.php">
Lomakkeen varsinainen sisältö
</form>
Lomakkeen lähettäminen CGI-ohjelmistoon joka sijaitsee samalla palvelimella jolla täytettävä lomake on:
<form action="/cgi-bin/post-query">
Lomakkeen lähettäminen eri palvelimella olevaan CGI-ohjelmistoon (kuvitteellinen sivuton.org):
<form action="http://www.sivuton.org/cgi-bin/post-query">
Lähetystavan method
-atribuutissa kerrotaan määritteellä lähetetäänkö lomakkeen tiedot url-muodossa (get) vai
käyttäjiltä piilotettuna (post).
Esimerkki, lomake lähetetään piilotettuna:
<form action="lomakekasittely.php" method="post">
Lomakkeen varsinainen sisältö
</form>
Atribuuttia enctype
käytetään lomakkeella lähetettyjen tietojen koodaukseen sekä sitä käytetään silloin kun
lomakkeella on tarkoitus lähettää kuvia tai muita tiedostoja. Määrittelyjä:
- application/x-www-form-urlencoded, kun lähetettävän tiedon tyyppi muu kuin oletusarvoinen MIME. Tämä ei vaikuta jos lähetysmetodina on get. - multipart/form-data, käytetään kun lomake sisältää tiedoston kokoisen lähetettävän syötekentän. - text/plain, sähköpostin lähetys lomakkeelta (action:n arvona oltava sähköposti-osoite).Esimerkissä on kaksi input-elementtiä joiden avulla erilaisia lomakekenttiä luodaan sivuille, input-elementin määrittelyjä esitellään tarkemmin täällä ja PHP-oppaassa.
<form action="mailto:sahvoposti.osoite@gmail.com" enctype=text/plain">
<input name="etunimi" type="text"> Etunimi<br>
<input name="sukunimi" type="text"> Sukunimi<br>
<input type="submit" value="LÄHETÄ">
</form>
Mikäli lomake on toteutettu frame
-elementillä luotuun kehykseen,
käytetään target
-atribuuttia, muotoa target="kehyksen nimi"
.
Alla target-atribuutin määritteet:
lomakkeella on tarkoitus lähettää kuvia tai muita tiedostoja. Määrittelyjä:
- window_name, (ilmeisesti nykyään framename, vastaus näytetään ifame:ssä (?). - _blank, vastaus näytettään uudessa ikkunassa tai selaimen välilehdellä. - _parent, vastaus näytetään samassa kehyksessä. - _self, vastaus näytetään vanhassa (?) kehyksessä. - _top, vastaus näytetään kokonaisena ikkunassa (?).
<form action="demo_form.asp" method="get" target="_blank">
<input name="etunimi" type="text"> Etunimi<br>
<input name="sukunimi" type="text"> Sukunimi<br>
<input type="submit" value="LÄHETÄ">
</form>
Lomakkeen nimi ilmaistaan name
-atribuutilla luotuun kehykseen,
name="lomakkeen nimi"
.
HUOM! Kyse on lomakkeen nimestä (form-elementtissä) ei lomakekentän nimestä (input-elementissä). Lomakkeen nimi ei näy sivuston käyttäjälle,
käytetään viittatessa esim JavaScriptissa lomakkeeseen sekä jos html-dokumentissa on useita lomakkeita.
<form action="form_action.asp" method="get" name="Nimilomake">
<input type="text" name="etunimi"> Etunimi<br>
<input type="text" name="sukunimi"> Sukunimi<br>
<input type="button" onclick="formSubmit()" value="Lähetä nimitiedot">
</form>
Lomakkeelle voidaan asettaa siinä käytettävä kieliasetus lang
-määritteellä käyttämällä kielen englanninkielistä lyhennettä, alle esimerkissä ranska.
Lomakkeessa käytettävän kielin määrittely:
<form action="form_action.asp" method="get" name="Nimilomake" lang="fr">
<input type="text" name="etunimi"> Etunimi<br>
<input type="text" name="sukunimi"> Sukunimi<br>
<input type="button" onclick="formSubmit()" value="Lähetä nimitiedot">
</form>
Kirjoitussuunta-asetus tehdään dir
-atribuutissa käyttäen määritettä
ltr
(left to right) tai rtl (right to left).
Molemmat asetukset koskevat yleensä koko www-sivustoa jollei toisin ole asetettu.
Kirjoitussuunta määritellään saman tyylisesti form
-elementissä kuten muissakin teksti-elementeissä:
<form action="form_action.asp" method="get" name="Nimilomake" dir="ltr">
<input type="text" name="etunimi"> Etunimi<br>
<input type="text" name="sukunimi"> Sukunimi<br>
<input type="button" onclick="formSubmit()" value="Lähetä nimitiedot">
</form>
Lomakkeen paikalliset tyyliastukset voi toteuttaa style
- tai id
-määritteessä,
koko lomaketta koskien class
-atribuuttia avulla kokonaisena tyyliastuksena CSS-tiedostossa. Määritteellä
id
voidaan myös ilmoittaa yksiselitteiden kohta linkille.
CSS-tiedostossa olevan Lomake1 mimisen tyyliohjeen liittäminen lomakkeeseen class-atribuutilla:
<div class="Lomake1">
<form>
lomakkeen sisältö
</form>
</div>
Lomakkeelle paikallinen tyyli-asetus style-atribuutilla
ja span
-elementillä
sekä style-tiedostosta painikkeelle class
-atribuutilla:
<form action="form_action.asp" method="get" name="Nimilomake">
<input type="text" name="e_nimi" style="background-color:RGB(255,238,179)">
<span style="color:blue"> Etunimi </span><br>
<input type="text" name="s_nimi" style="background-color:RGB(255,238,179)">
<span style="color:blue"> Sukunimi </span><br>
<input class="painike" type="button" onclick="formSubmit()" value="Lähetä nimitiedot">
</form>
Asetettaessa title
-atribuutilla otsikko lomakkeelle form
-elementin
sisään, otsikko tai opaste avautuu näkyville pienenä opaste-ruutuna teksteineen kun hiiren osoitin on lomakkeen alueella:
<form title="Henkilötiedot, anna tietosi." action="form_action.asp" method="get" name="Nimilomake">
<input type="text" name="e_nimi" style="background-color:RGB(255,238,179)">
<span style="color:blue"> Etunimi </span><br>
<input type="text" name="s_nimi" style="background-color:RGB(255,238,179)">
<span style="color:blue"> Sukunimi </span><br>
<input class="painike" type="button" onclick="formSubmit()" value="Lähetä nimitiedot">
</form>
Atribuutilla autocomplete
, tehdään automaattinen täydennys lomakkeen kaikkiin kenttiin
ellei niitä ole erikseen asetettu. Automaattinen täydennys ei kuitenkaan toimi jos toiminto on selaimen asetuksista estetty.
Automaattinen täyttö estetty - autocomplete="off"
, lomakekenttä ei ehdota aiemmin
kenttään kirjoitettua tekstiä tai email-osoitetta:
<form action="demo_form.asp" method="get" autocomplete="off">
<input type="text" name="fname">Etunimi
<input type="email" name="email">email
<input type="submit" value="Lähetä">
autocomplete="on"
, lomakekenttä ehdottaa aiemmin
kenttään kirjoitettua tekstiä tai email-osoitetta:
<form action="demo_form.asp" method="get" autocomplete="on">
<input type="text" name="fname">Etunimi
<input type="email" name="email">email
<input type="submit" value="Lähetä">
Lomakkeen kenttien tarkitusten estämiseen käytetään novalidate
-määritettä:
<form action="form_action.asp" novalidate>
E-mail: <input type="email" name="user_email">
<input type="submit" value="Lähetä">
</form>