Scripsit Jori Mantysalo:
>> <SELECT NAME="lempiruoka" ID="valinta">
>> <OPTION VALUE=0 SELECTED>Valitse jokin seuraavista:</OPTION>
> Tämähän on sama kuin mitä esitin:
> ! Niinpä lisätään
> ! <OPTION VALUE=0>(Valitse)</OPTION>
Paitsi että käytin SELECTED-määritettä, joka määrittelee vaihtoehdon
alkutilassa valituksi.
> Tai siis tietääkseni ainakin kaikilla selaimilla SELECT-listan 1.
> OPTION on valittuna, ellei millään OPTIONilla ole SELECTED-merkintää.
Asia on huomattavasti monimutkaisempi, mutta kieltämättä tässä
tapauksessa SELECTED-määritteen käyttö on lähinnä loogisuuden vaatimaa.
Toisaalta kun sitä käytetään, voidaan nollavalinta sijoittaa minne
halutaan, vaikka listan loppuun. Sinne voidaan sijoittaa vaikkapa
<OPTION VALUE=-1>Ei mikään edellä mainituista</OPTION>
<OPTION VALUE=-2>En osaa tai en halua sanoa</OPTION>
<OPTION VALUE=0 SELECTED>Valintaa ei vielä ole tehty</OPTION>
Tällöin voidaan erottaa erilaiset nollatapaukset ja saada tietoa, josta
voi olla apua lomakkeen kehittämisessä. Tapaus 0 on selvästi sellainen,
jossa kysymys täytyy tulkita kokonaan ohitetuksi eli ei voi tietää
mitään käyttäjän suhtautumisesta siihen. Tapaus -1 voi merkitä, että on
tarjottu liian vähän vaihtoehtoja. Tapaus -2 (jonka voisi vielä jakaa
osiin) voi merkitä, että kysymys koetaan liian vaikeaksi tai liian
tyhmäksi.
>> Tapa 2:
>> <INPUT TYPE=RADIO NAME="lempiruoka" VALUE=1>Pannukakku<BR>
>> . . .
>> <INPUT TYPE=RADIO NAME="lempiruoka" VALUE=0 CHECKED>Ei vielä valittu
> RADIO-elementti toimii, jos lempiruokia on muutama. Mutta isommissa
> listoissa (kotimaa, kotikunta etc.) se menee rumaksi.
Paljon isompi ongelma on, että kun lista on iso, valinnan tekeminen
teknisesti on hankalaa joka tapauksessa - ja SELECT on hankala, koska se
luo ison pudotusvalikon, jossa on monenlaisia käytettävyysongelmia (jos
kohta pari etuakin, joita osa käyttäjistä osaa hyödyntää). Maan ja
kunnan valinta kannattaa joka tapauksessa yleensä tehdä tekstikentällä,
jos on tarkoitus tarjota valittavaksi esimerkiksi kaikki maailman maat
tai kaikki Suomen kunnat.
> Noilla saa kyllä homman siis hoidettua, kuten kirjoitinkin. Mutta entä
> se hienostelupuoli?
Kyselin rivien välissä, tarvitaanko sitä, ja yritin myös kertoa, että
tavassa 2 se on olennaisesti helpompaa hoitaa kuin tavassa 1. Syynä on
se, että SELECT-elementin toteutus on edelleen jäykkää, koska selaimet
yleisesti käyttävät järjestelmien valmiita rutiineita, joihin voidaan
vain osittain vaikuttaa CSS:llä.
Yksi vaihtoehto - joka on melko hankala mutta luultavasti vähemmän
hankala kuin skriptien käyttö tms. - on koodata valinta valintanapeilla
eli radio buttoneilla mutta CSS:llä muuntaa tällainen rakenne
ulkonaisesti pudotusvalikon tapaiseksi. Tosin siinäkin saattaa tulla
äitiä eikun skriptikieltä ikävä...
--
Jukka K. Korpela ("Yucca")
http://www.cs.tut.fi/~jkorpela/