JWT Hyrskykari, SIS, Tampereen yliopisto 4/25/2013

Samankaltaiset tiedostot
Aulikki Hyrskykari Antti Sand

JWT Hyrskykari, SIS, Tampereen yliopisto 4/3/2014

Lomakkeet HTML5. Elina Ulpovaara. Testaus: IE9 Firefox7 Opera11 Chrome

Aulikki Hyrskykari. JWT Hyrskykari, SIS, Tampereen yliopisto 4/23/2014

Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä.

ICT1TN004. Lomakkeet. Heikki Hietala

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Digitaalisen median tekniikat xhtml - jatkuu

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

Digitaalisen median tekniikat xhtml - jatkuu

Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi

10 Lomakkeet Kontrollit. 10 Lomakkeet

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Järjestelmäarkkitehtuuri (TK081702)

Excel-lomakkeen (syöttötaulukko) käyttäminen talousarvio- ja suunnitelmatietojen toimittamisen testaamisessa Kuntatalouden tietopalvelussa

ELM GROUP 04. Teemu Laakso Henrik Talarmo

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Palvelinpuolen ohjelmointi

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Taustaa. CGI-ohjelmointi

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

TIETOJENKÄSITTELY/PIKATAIVAL2 Tehtävä G

Digitaalisen median tekniikat JavaScript

Digitaalisen median tekniikat JavaScript Harri Laine 1

11/20: Konepelti auki

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

2 Web-lomakkeet. 2 Web-lomakkeet

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Testidatan generointi

Mitä direktiivi käytännössä velvoittaa?

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Projektinhallintaa paikkatiedon avulla

Zeon PDF Driver Trial

Flash ActionScript osa 4

ICT1TN004. Skriptikielet. Heikki Hietala

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Harjoitustyö: virtuaalikone

Digitaalisen median tekniikat. Luento 4: JavaScript

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Muuttujien määrittely

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Lyseopaneeli 2.0. Käyttäjän opas

ARVI-järjestelmän ohje arvioinnin syöttäjälle

Tekstiviestipalvelun rajapintakuvaus

1. Omat operaatiot 1.1

9. Periytyminen Javassa 9.1

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Internet-pohjaisen oppimisympäristön laadinta. Luento 3

Harjoitus 2 (viikko 45)

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

ARVO - verkkomateriaalien arviointiin

HSMT Web-sovellustekniikoista

Action Request System

Ohjelmoinnin perusteet, syksy 2006

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Ohjelmoinnin jatkokurssi, kurssikoe

MITÄ JAVASCRIPT ON?...3

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

15. Ohjelmoinnin tekniikkaa 15.1

Asiointipalvelun ohje

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Helsingin yliopisto, TKTL Tietokantojen perusteet, s 2000 WWW-tietokantasovellukset Harri Laine 1. vapaamuotoiset tiedot

Maestro Sähköpostilähetys

Opas administraattori-tason käyttäjille. MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

ARVI-järjestelmän ohje arvioinnin syöttäjälle

WCAG 2.1 Uudet kriteerit

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

TIEDEJUTTUKURSSI FM VILLE SALMINEN

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Copyright Basware Corporation. All rights reserved. Pikaopas toimittajille Supplier Portal (Toukokuu 2013)

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

TIE Principles of Programming Languages CEYLON

Sähköpostitilin käyttöönotto

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sivuston nopeus. Poista hahmonnuksen estävä JavaScript ja CSS sivun yläosan sisällöstä

HAME PostGIS-tietokanta

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

ETAPPI ry JOOMLA 2.5 Mediapaja. Artikkeleiden hallinta ja julkaisu

Lomakkeiden suunnittelu. Aiheina

Luento 5. Timo Savola. 28. huhtikuuta 2006

ITKP102 Ohjelmointi 1 (6 op)

ARVO - verkkomateriaalien arviointiin

Ohjelmoinnin peruskurssi Y1

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Lomakkeiden suunnittelu. Aiheina

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

5. HelloWorld-ohjelma 5.1

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

1 (5) OPISKELIJAN KÄYTTÖLIITTYMÄ

Mainonnanhallinta Käyttöopastus. Tekniikka. Olli Erjanti Mediareaktori

Transkriptio:

25.4.2013 Aulikki Hyrskykari Lomakkeet Javascript perusteet Tähän asti on käsitelty miten WWW sivuja käytetään tiedon välittämiseen käyttäjälle. Lomakkeiden avulla voidaan saada tietoa toiseen suuntaan, käyttäjältä sivun julkaisijalle. Lomakkeet ovat keskeinen osa vuorovaikutteisten verkkopalvelujen toteuttamisessa, esimerkiksi o hakukoneet o verkkokaupat o informaatiopalvelut (kirjastot, tietokannat jne.) o www pohjaiset sähköpostipalvelut o mielipidekyselyt o tapahtumiin, kursseille yms. ilmoittautumiset

Lomakkeet koostuvat kahdesta osasta: (1) WWW sivulla näkyvästä, HTML:n ja CSS:n avulla määritellystä lomakkeesta ja (2) Lomakkeelle annettujen tietojen käsittelyn tekevästä ohjelmasta ("lomakkeenkäsittelijä", tallennettuna palvelimelle). Lomakkeet on koettu HTML:ssä hankaliksi, koska o muotoilu ja käsittely vaatii muita sivuelementtejä enemmän sekä CSS että Javascript koodausta HTML5:ssä tämä on pyritty ottamaan huomioon o sisältää huomattavan määrän uusia elementtejä o uusia attribuutteja lomakkeen käsittelyä varten Selaimet eivät kovin kattavasti tue vielä o HTML tulkit jättävät tunnistamattomat elementit tai attribuutit käsittelemättä o uudet ominaisuudet jäävät vain huomiotta o tulevat käyttöön sitä mukaan kun uudet selainversiot osaavat niitä tulkita

Wufoo (http://wufoo.com/html5/) o voit tarkistaa miten eri selaimet ja selainversiot tukevat HTML5 lomakkeen uusia - input tyyppejä - input attribuutteja - lomake elementtejä Sivustolla myös o esimerkkikuvia lomake elementtien toiminnasta o helppo kokeilla livenä uusien piirteiden toimintaa <form {lomake elementin attribuutit}> {elementit lomakkeen sisällä määräävät lomakkeen sisällön} {elementti, joka lähettää lomakkeen käsittelyyn (input type="submit")} </form> Lomakkeen mahdolliset attribuutit: accept charset action autocomplete novalidate target enctype method name

accept_charset: Määrittää merkistökoodauksen, jota palvelin lomakkeelta odottaa jos tämä jätetään antamatta oletuskoodaus sama kuin mitä HTMLdokumentissa on käytetty. <form accept charset="iso 8859 1"> action: Määrittää lomakkeenkäsittelijän <form action="mailaa.pl"> autocomplete : Kenttien automaattitäyttö (ehdottaa aiempia syötteitä) <form autocomplete="on"> enctype: Kenttien arvojen koodauksen määrittelymahdollisuus <form enctype="multipart/form data"> method: Lomakkeen tiedot voi lähettää verkkosovellukselle kahdella eri tavalla, get tai post metodia käyttäen. <form method= post"> name: Antaa lomakkeelle nimen, jota ohjelmat käyttävät tunnistetietona lomakeen avulla lähetettyihin tietoihin viitattaessa. Nimen tulee olla yksikäsitteinen (lomakkeiden kesken) <form name= asiakastiedot"> novalidate : Määrittää, että lomakkeelle annetuille tiedoille ei tehdä automaattista tarkistusta ennen lähetystä. <form novalidate> target: Määrittää missä lomakkeen aktivioman cgi ohjelman palauttama HTMLdokumentti näytetään <form target ="_blank >

kenttien esittelyissä saattavat globaalin id attribuutin ja lomakkeen name attribuutin roolit joskus vaikuttaa sekavilta arvojen ei välttämättä tarvitse olla samat, vaikka oyleinen käytäntö on antaa niille samat arvot <input type="checkbox" id="film" name="film" value="elokuva" /> name opakollinen jokaiselle syötekentälle oarvon avulla verkkosovellus palvelimella tunnistaa miltä elementiltä syötetieto on peräisin id okäytetään verkkosivun sisällä kenttään viittamiseksi <form {lomake elementin attribuutit}> {elementit lomakkeen sisällä määräävät lomakkeen sisällön} {elementti, joka lähettää lomakkeen käsittelyyn (input type="submit")} </form> Lomake elementin sisälle kirjoitettavat elementit määrittävät lomakkeen kentät <button> <datalist> <fieldset> <input> <legend> <keygen> <label> <meter> <optgroup> <option> <select> <textarea> <output> <progress> <input> elementin avulla voidaan esitellä suurin osa lomakkeen syötekentistä, käsitellään se seuraavassa ensin

Yleinen lomakkeen syötekenttä, type attribuutti määrittelee tarkemmin millaisesta syötekentästä on kyse. Sallittu sisältö: ei sisältöä (tyhjä elementti) Sallitut attribuutit: globaalit attribuutit, type, accept, alt, autocomplete, autofocus, checked, disabled, form, formaction, formenctype, formmethod, formnovalidate, formtarget, height, list, max, maxlength, min, multiple, name, pattern, placeholder, readonly, required, size, src, step, value, width, Sallittu äiti elementti: elementti, joka voi saada phrasing sisältöä <input type="text" id="sivu id" name="palvelin id" value="oletusarvo" /> Yhden tekstirivin syöttö, password kentässä merkit piilotetaan näkyvistä, size attribuutilla syötettävän merkkijonon pituus <fieldset> <legend>tekstiä ja salasana </legend> <label for="kja tunnus">tunnus:</label> <input type="text" name="kja tunnus" id="kja tunnus" size="22" value="anna käyttäjätunnuksesi" /> <label for="password">salasana:</label> <input type="password" name="password" id="password" size="15" /> </fieldset>

Painikkeita, joista kolme ensimmäistä ovat painikkeen näköisiä, ja neljäskin käyttäytyy kuten painike, vaikka onkin kuva o button: ei erikseen määriteltyä toiminnallisuutta, toiminnallisuus toteutettava itse esim. Javascriptillä o reset: palauttaa lomakkeen kentät alkuarvoihinsa o submit: lähettää lomakkeen tiedot käsittelyyn o image: kuten submit, mutta voidaan tehdä jostain kuvasta <input type="submit" value="lähetä" /> <fieldset> <legend>lataa tiedosto [input/type=file]</legend> <label for="lataa-tiedosto">tiedoston nimi: </label> <input type="file" name="lataa-tiedosto" id="lataa- Valintaruutu (valittu/ei valittu) <fieldset> <legend>oletko kiinostunut [input/type=checkbox]</legend> <label for="film">elokuvista</label> <input type="checkbox" name="film" id="film" value="elokuva" /> <label for="kirja">kirjallisuudesta</label> <input type="checkbox" name="kirja" id="kirja" value="kirja" /> <label for="garden">puutarhan hoidosta</label> <input type="checkbox" name="garden" id="garden" value="puutarha" /> <label for="sport">urheilusta</label> <input type="checkbox" name="sport" id="sport" value="urheilu" /> <label for="cars">autoilusta</label> <input type="checkbox" name="cars" id="cars" value="autot" /> </fieldset>

Radiopainike, ts. ryhmä valintoja, joista vain yksi voi olla valittuna <fieldset> <legend>ikäsi [input/type=radio]</legend> <label for="alle20">alle 20</label> <input type="radio" name="ika" id="alle20" value="alle20" /> <label for="20 39">20 39</label> <input type="radio" name="ika" id="20 39" value="20 39" /> <label for="40 59">40 59</label> <input type="radio" name="ika" id="40 59" value="40 59" /> <label for="yli59">yli 60</label> <input type="radio" name="ika" id="yli59" value="yli59" /> </fieldset> Kenttä, jota ei näytetä lomakkeella o voidaan käyttää arvojen tallentamiseen näkymättömiin lomakkeelle Esimerkiksi <input type="hidden" name="date submitted" value="2013 04 22"> Tyypillinen käyttö o ohjelman generoimia arvoja lomakkeelle talteen näkymättömiin o esimerkiksi kenttien tietoja niin että ne voidaan lomakkeelle palattaessa palauttaa käyttäjä ei joudu syöttämään tietoja kaikkiin kenttiin uudelleen

Uusia komponentteja: <input type = month week time date datetime datetime local > Aikaan liittyvän syötteen vastaanottamiseen o osassa on toteutettuna kalenterityyppinen käyttöliittymäkomponentti Wufoo: Käyttöliittymäkomponenti värin, verkko osoitteen, sähköpostiosoitteen ja puhelinnumeron vastaanottamiseen Wufoo:

Luvun syöttäminen tai valinta joltain väliltä (liukukontrollin avulla) ja kenttä hakulausekkeen syöttämiseksi hakukoneelle. Wufoo: accept="audio/* video/* image/* MIME_type" Määrittää (tiedoston latauskomponentin yhteydessä) minkä tyyppisiä tiedostoja, tiedoston latauskomponentin avulla hyväksytään ladattavaksi palvelimelle (ääntä, videota tai kuvia) alt= "seliteteksti kuvalle" vain image tyyppisen käyttöliittymäkomponentin yhteydessä autocomplete= "seliteteksti kuvalle" määrittää, käytetäänko syötekenttää kirjoitettaessa automaattitäydennystä autofocus [="autofocus"] määrittää että komponentti aktivoidaan sivun latauduttua (ts. tälle kentälle/painikkeelle annetaan fokus aluksi checked [=checked] käytössä syötetyyppien radio ja checkbox yhteydessä; asettaa niissä kyseisen vaihtoehdon (esi)valituksi.

disabled [= disabled ] asettaa komponentin passiiviseen tilaan, jolloin käyttäjä ei pääse muokkaamaan sen sisältöa tai napsauttamaan sitä hiirellä, passivoidun komponentin nimi/arvo paria ei välitetä palvelimelle. form= lomakkeen id" komponenetti liitetään kuuluvaksi tiettyyn lomakkeeseen (vaikka se ei olisikaan <form> elementin sisällä), näin komponentin arvo välitetään palvelimelle lomakkeen mukana vaikka se sijaitsisikin sivulla visuaalisesti lomakkeen muista komponenteista erillään formaction="lomakkeenkäsittelijä url" painikkeelle määritellä muitakin lomakkeenkäsittelijöitä kuin elementin esittelyssä annettu formenctype="application/x www form urlencoded multipart/formdata text/plain" määrittää kentästä palvelimelle lähetettävän tiedon koodauksen (käytettäessä post metodia) formmethod ="get post" painikkeelle määritelty lähetystapa, joka syrjäyttää lomakkeelle annetun lähetystavan formnovalidate[="formnovalidate"] ehkäisee lomakkeen lähetyspainikkeessa lomakkeen kenttien automaattisen tarkistuksen palvelimelle lähetettäessä formtarget="iframe nimi _blank _self _parent _top" vain image tyyppisen käyttöliittymäkomponentin yhteydessä height = ei negatiivinen luku" määrää kuvan avulla muodostetun syötekomponentin korkeuden pikseleissä list = datalist id" liittää syötekentän <datalist> elementtiin, jossa on lueteltu kenttään mahdollisesti syötettäviä arvoja, joita käytetään kun automaattinen täydentäminen ehdottaa kentälle arvoksi. max min = number date kentän suurin pienin mahdollinen arvo

maxlength= luku" määrää kuinka monta merkkiä syötekenttään maksimissaan otetaan vastaan multiple= multiple" antaa mahdollisuuden valita useamman tiedoston kerralla name= nimi" antaa komponentille nimen, jota käytetään tunnistetietona kun elementin arvo lähetetään lomakkeenkäsittelijälle pattern="säännöllinen lauseke" mahdollistaa hyväksyttävän arvon määrittelemisen säännöllisten lausekkeiden avulla placeholder= vihje kenttään voi antaa vihjeeksi alku arvon, joka esimerkiksi kehottaa antamaan syötteen tietyssä readonly [="readonly ] asettaa kentän passiiviseen tilaan, sen arvoa ei pääse muokkaamaan. required [="required"] pakollisti täytettävä kenttä: kenttään on annettava arvo ennen kuin lomakkeen voi lähettää käsittelyyn size=" positiivinen luku" kenttään näkyviin mahtuvien merkkien lukumäärä src= osoite" käytössä vain image tyyppisellä kentällä: osoite, josta kuva noudetaan value="merkkijono" käytetään rajoittamaan hyväksyttäviä syötekentän arvoja, sekä lukuarvojen rajoittamiseen että ajan painoarvon määrittämiseen width= ei negatiivinen luku" kuvan avulla muodostetun syötekomponentin leveys pikseleissä

<fieldset> Asettaa kentät lomakkeella omaksi kehystetyksi ryhmäkseen, ryhmälle voi antaa otsikon <legend> elementin avulla. Sallittu sisältö: <legend> elementti, jota voi seurata mitä tahansa flowsisältöä Sallitut attribuutit: globaalit attribuutit, name, disabled, form Sallittu äiti elementti: elementti, joka voi saada flow sisältöä <fieldset> <legend>tekstiä ja salasana</legend> <label for="kja tunnus">tunnus:</label> <input id="kja tunnus" type="text" name="kja tunnus"size="22" value="anna käyttäjätunnuksesi" /> <label for="password">salasana:</label> <input id="password" type="password" name="password"size="15" /> </fieldset> <legend Antaa lomakkeella otsikon <fieldset> kenttäryhmälle. Sallittu sisältö: mitä tahansa phrasing sisältöä Sallitut attribuutit: globaalit attribuutit Sallittu äiti elementti: kenttäryhmä, ts. <fieldset> elementti <fieldset> <legend>tekstiä ja salasana</legend> <label for="kja tunnus">tunnus:</label> <input id="kja tunnus" type="text" name="kja tunnus"size="22" value="anna käyttäjätunnuksesi" /> <label for="password">salasana:</label> <input id="password" type="password" name="password"size="15" /> </fieldset>

<label> Antaa kentälle nimikkeen. Sallittu sisältö: flow tai phrasing content. Sallitut attribuutit: globaalit attribuutit, for, form Sallittu äiti elementti: kenttäryhmä, ts. <fieldset> elementti <fieldset> <legend>tekstiä ja salasana</legend> <label for="kja tunnus">tunnus:</label> <input id="kja tunnus" type="text" name="kja tunnus"size="22" value="anna käyttäjätunnuksesi" /> <label for="password">salasana:</label> <input id="password" type="password" name="password"size="15" /> </fieldset> Syötekomponentti useamman rivin tekstille. Sallittu sisältö: merkkimuotoista tietoa Sallitut attribuutit: globaalit attribuutit, autofocus, cols, dirnamea, disabled, form, maxlength, name, placeholder, readonly, required, rows, wrap Sallittu äiti elementti: elementti, joka voi saada phrasing sisältöä <textarea id="msg" rows="10" cols="40" name="msg">

Elementti erilaisten painikkeenomaisesti toimivien komponenttien toteutukseen esimerkiksi teksti voi toimia painikkeena Sallittu sisältö: phrasing sisältöä Sallitut attribuutit: globaalit attribuutit, autofocus, disabled, form, formaction, formenctype, formmethod, formnovalidate, formtarget, name, type, value Sallittu äiti elementti: elementti, joka voi saada phrasing sisältöä <button name="kentan id">nimesi:</button> <select> <option> <optgroup> Toteuttaa valintalistan Sallittu sisältö: nolla tai enemmän <optiongroup> ja <option>elementtejä Sallitut attribuutit: globaalit attribuutit, autofocus, disabled, form, multiple, name, required, size Sallittu äiti elementti: elementti, joka voi voida flow sisältöä <label for="age">ikäsi: </label> <select id="age" name="age"> <option>valitse</option> <option>alle 20</option> <option>20 39</option> <option>40 59</option> <option>yli 60</option> </select>

<select> <option> <optgroup> Määrittelee valintalistan, valintaruudun tai radiopainikkeen vaihtoehdot Sallittu sisältö: tekstimuotoista tietoa Sallitut attribuutit: globaalit attribuutit, label, selected, value Sallittu äiti elementti: <select> <optgroup> <datalist> <label for="age">ikäsi: </label> <select id="age" name="age"> <option>valitse</option> <option>alle 20</option> <option>20 39</option> <option>40 59</option> <option>yli 60</option> </select> <select> <option> <optgroup> Ryhmittelee vaihtoehtoja valintalistassa. Sallittu sisältö: tekstimuotoista tietoa Sallitut attribuutit: globaalit attribuutit, disabled, label Sallittu äiti elementti: <select> <form action="kasittelija.php"> <select id="kirja" name="on lukenut" multiple="multiple"> <optgroup label="sofi Oksanen"> <option>puhdistus</option> <option>kun kyyhkyset katosivat</option> </optgroup> <optgroup label="arto Paasilinna"> <option>aatemi ja Eeva</option> <option>jäniksen vuosi</option> <option>kylmät hermot, kuuma veri</option> </optgroup> </select> <form>

<datalist> Liittää tekstityyppiseen <input> syotekstikenttään listattribuuttia käyttäen ennakkoon määritellyn listan arvoja, joita tarjotaan automaattisena täydennyksenä kun kenttään kirjoitetaan sisältöä. Sallittu sisältö: nolla tai enemmän <option> elementtejä Sallitut attribuutit: globaalit attribuutit Sallittu äiti elementti: elementti, joka voi voida phrasing sisältöä <input type="text" list="isotkaupungit" name="kotikaupunki"> <datalist id="isotkaupungit"> <option value="tampere"> <option value="helsinki"> <option value="oulu"> <option value="turku"> <option value="rovaniemi"> </datalist> <keygen> Elementin avulla luodaan salausavainpari, jota käytetään salaamaan tiedot jotka kulkevat palvelimen ja selaimen välillä Sallittu sisältö: tyhjä elementti Sallitut attribuutit: globaalit attribuutit, autofocus, challenge, disabled, form, keytype, name Sallittu äiti elementti: elementti, joka voi voida phrasing sisältöä <form action="kasittelija.php" method="get"> Pankkitilin numero: <input type="text" name="tilinro" /> Salaus: <keygen name="salaus" /> <input type="submit" value="lähetä" /> </form>

<output> Vastaavasti kuin <input> elementtiä käytetään tiedon tuomiseen verkkosivun lomakkeelta käsittelyyn, tulisi <output> elementtiä käyttää ohjelmassa tuotettujen (selaimessa javascriptillä laskettujen tai palvelimelta saatujen) tietojen näyttämiseen. Sallittu sisältö: tyhjä elementti Sallitut attribuutit: globaalit attribuutit, for, form, name Sallittu äiti elementti: elementti, joka voi voida phrasing sisältöä <progress> Piirtää horisontaalisen palkin, jolla voi visualisoida tehtävän etenemistä. Esimerkiksi arvo 20 piirtää puoleen väliin täytetyn palkin, jos maksimiarvoksi on annettu 40 (kuten esimerkissä alla) Sallittu sisältö: phrasing sisältö Sallitut attribuutit: globaalit attribuutit, value, max Sallittu äiti elementti: elementti, joka voi voida phrasing sisältöä <progress value="20" max="40"></progress>

<meter> Piirtää horisontaalisen palkin, jolla voi visualisoida suhteellista määrää. Esimerkiksi arvo 0.5 piirtää puoleen väliin täytetyn palkin. Sallittu sisältö: phrasing sisältö Sallitut attribuutit: globaalit attribuutit, value, min, max, low, high, optimum Sallittu äiti elementti: elementti, joka voi voida phrasing sisältöä Mittari1: <meter value="2013" min="2000" max="2100" ></meter> Mittari2: <meter value="0.75"></meter> Lomakkeen kenttiin syötetyt tiedot lähetetään palvelimelle o tiedot vastaanottaa ja käsittelee palvelimella cgi ohjelma o ohjelma määrätään lomakkeen action attribuutilla cgi ohjelma o rajapinta (Common Gateway Interface) lomakkeen ja palvelimella tiedot vastaanottavan ohjelman välillä o siis WWW palvelimella suoritettava ohjelma, joka saa selaimelta (yleisimmin HTMLlomakkeilta) tietoja o ei sidottu mihinkään tiettyyn ohjelmointikieleen o toteutetaan usein tulkattavilla, ns. skriptikielillä (Perl, Phythonilla, PHP) o mahdollista myös kirjoittaa erilliseen käännettävillä kielillä (C#, Java, C++ tai erityisesti verkkosovellusten laatimiseen räätälöityjen ohjelmointiympäristöjen avulla, kuten ASP.NET tai J2EE o ohjelman suoritus tapahtuu palvelimella, ei selaimessa - palvelimella oltava ko. kielen tulkki (tai kääntäjä) - voivat käyttää palvelimella sijaitsevia tiedostoja tai tietokantoja o lähettää (tyypillisesti) palautesivun selaimelle

<form action="cgi ohjelman url"method="get"> get o selain liittää lomakkeen tiedot verkkosovelluksen osoitteeseen o lähettää pyynnön verkkosovelluksen omaavalle www palvelimelle o lomakkeen tiedot näkyvät verkko osoitteessa? merkin perässä, muuttujat on eroteltu toisistaan & merkillä. käytetään o pienissä lomakkeissa, o tilanteissa, joissa ei ole tarpeen peittää lomakkeen tietoja käyttäjältä (tai muilta koneen lähettyvillä olevilta) o useimmat web hakukoneet käyttävät lomakkeissaan get metodia o mahdollistaa kyselyn tallentamisen ja edelleen lähettämisen toisille asiasta kiinnostuneille tai tietojen lähettämisen lomakkeenkäsittelijälle myös kokonaan ilman verkkolomaketta <form action="cgi ohjelman url"method= post"> post o lähetetään HTTP kutsun mukana omassa kentässään käytetään o suositeltavaa, kun verkkosovellukselle lähetetään suuri määrä tietoa tai o tiedon piilottaminenkäyttäjältä tai tietokoneen ympärillä olevilta silmäpareilta on tarpeen o huomattava kuitenkin, että - myös post metodilla tiedot lähetetään verkkosovellukselle täysin salaamattomina - kolmas osapuoli voi lukea kaikki lomakkeella lähetettävät tiedot (myös salasanat) o arkaluonteisia tietoja lähetettäessä tulisikin varmistua siitä, että asiakassovellus (web selain) keskustelee wwwpalvelimen kanssa esim. SSL salatulla HTTPS protokolla. Esimerkit kurssisivuilla JavaScriptin rooli alkuaikojen (usein ärsyttävien) tehosteiden lisäyksiin käytetyistä, aliarvostetusta kielestä o kehittynyt varsin vakavasti otettavaksi ja voimakkaaksi ohjelmointikieleksi. JavaScriptin avulla voidaan o lisätä www sivuille dynaamisia toimintoja o tarkistaa lomakkeelle syötettyjä tietoja o tulostaa verkkosivulle sisältöä ohjelmallisesti, o muokata verkkosivulla olevaa sisältöä. Alunperin Netscapen kehittämä o Netscape selaimessa 1995 nimellä LivesScript vaihtoi nimeksi JavaScript Sittemmin JavaScriptin menestyksen taustalla on ollut ECMA o otti vastuun kielen standardisoinnista o JavaScript seuraa ECMAScript standardeja, viimeisin (huhtikuu 2013) o vimmeisin JavaScript 1.8.5 (perustuu EcmaScript standardiin ECMA 262).

JavaScript on o kevyt, selaimessa tulkattava ohjelmontikieli o perustuu löyhästi C ohjeilmointikieleen o dynaamisesti tyypitetty kieli (muuttujien tyyppiä ei tarvitse kiinniittää) o oliopohjainen, tai tarkemmin prototyyppipohjainen (oliomalli ja periytyvyys pohjautuvat prototyyppeihin, ei luokkiin) ohjelmointikieli, (tarkemmin MDN: Details of the object model) Toisin kuin cgi ohjelmat, javascript koodi suoritetaan suoraan selaimessa. o sivuun voi tehdä paikallisia muutoksia lataamatta koko sivua uudelleen palvelimelta o "dynaaminen HTML Javascriptiin löytyy palvelinohjelmoinnin mahdollistavia laajennusmoduleta o olioita, joiden kautta voi esimerkiksi käsitellä palvelimella sijaitsevia tietokantoja tai tiedostoja Tulkki ohittaa ylimääräiset tyhjätilamerkit o ohjelmakoodin sisennys normaaliin tapaan suositeltavaa. JavaScript kirjastoissa kuitenkin koodi usein pitkänä rivinä (pitkinä riveinä) sisentämättömässä muodossa o isoissa kirjastionti koodin minimoinnilla merkitystä (tulkkauksen tehostaminen) Työkaluja koodin minimointiin o Google Closure Compiler: https://developers.google.com/closure/compiler/ o GCC online versio: http://closure compiler.appspot.com/home o YUI Compressor: http://yui.github.io/yuicompressor/ o YUI online versio: http://refresh sf.com/yui/ Minimointia ei kuitenkaan tarpeen ole tehdä itse kirjoitetuille koodipaloille o eikä se ylläpidon ja muokkauksen kannalta ole järkevääkään

Upotus sivulle (HTML dokumenttiin) analogisesti CSS sääntöjen kanssa o voidaan kirjoittaa omaksi (*.js) tiedostokseen ja tuoda se sivulle <script>elementin avulla (suositeltavaa) <script type="text/javasript" src="nimi.js" >... javascript koodi </script> tai omana elementtinään johonkin kohtaan HTML dokumenttia <script>... javascript koodi </script> Mihin kohtaan ohjelmaa skripti lisätään? <!DOCTYPE html> <head> <title>ensimmäinen javascript ohjelma</title> </head> <body> <script> document.write("opetellaan Javascriptiä!") </script> </body> </html> o voi sijoittaa sivulle minne tahansa yleensäkin elementin o oheisen kaltaisessa tilanteessa tietysti kohdan määrää se, mihin skriptin halutaan tuottavan sisältöä Normaalimpi käyttötilanne o skriptit kirjoitetaan funktioiksi ulkoiseen (*.js) tiedostoon o kirjoitetaan funktioiksi, vaikka kirjoitettaisiin koodina elementin sisään, koodi kirjoitetaan funktioiksi o funktioita kutsutaan käyttäen HTML:n tapahtumankäsittelijöiden avulla o aiemmin käytäntönä oli sijoittaa skriptit dokumentin otsikko osaan (eivät varsinaista sivun sisältöä, vaan eräänlaista sivun lisäinformaatiota) Nykyisin: sijoita aina dokumentin loppuun, jos se on mahdollista o selain noutaa (erilliset tiedostot), tulkitsee ja suorittaa skriptit siinä järjestyksessä kun ne HTMLdokumentissa tulevat vastaan o blocking effect: sinä aikana kun skriptitiedostoa tulkataan, sivulle ei tuoteta mitään <script> elementin jäljessä määriteltyä sivun sisältöä

Kuten C:ssä, C++:ssa, Javassa o lauseet päätetään normaalisti puolipisteeseen o JavaScriptissä puolipisteen voi kuitenkin jättää pois, silloin kun lause on kirjoitettu omalle rivilleen <script language="javascript" type="text/javascript"> var alku = 1; var loppu = 2; var muuttuja1 = 10 var muuttuja2 = 20 </script> JavaSript on case sensitiivinen kieli, o Esimerkiksi luku, Luku ja LUKU ovat kaikki eri tunnuksia Nimeämiskäytännöt o varsinaisia pakottavia sääntöjä ei ole, vakiintuneita käytäntöjä kyllä o "camelcase" käytäntö under_score käytännön sijasta o muuttujien nimet pienellä alkukirjaimella, oliotyyppien nimet isolla o nimeämiskäytännöistä tärkeintä kuitenkin on - käyttää ohjelmissa hyvin kuvaavia nimiä ja - säilyttää omaksumansa nimeämiskäytäntö samana o ks. Jeff Wayn kokoama lista: 9 Confusing Naming Conventions for Beginners var tyontekija = new Object(); var auto = new Array( Lada", Skoda", Nissan"); var day = new Date(2013,04,25);

document.write("seuraavat rivit eivät näy sivulla") // yhden rivin kommentti /* javascript tulkki ohittaa kaikki merkit oli se sitten mitä tahansa kunnes löydetään kommentin lopettavat merkit */ document.write("tämä taas näkyy") <script language="javascript" type="text/javascript"> <! document.write("opetellaan Javascriptiä!") > </script> Kielessä on 56 varattua sanaa:

JavaScript on dynaamisesti tyypitetty kieli o muuttujan tyyppi määräytyy sen arvon perusteella o voi vaihtua ohjelman suorituksen aikana JavaScriptin muuttujat ovat olioita olioita voi luoda itse kielestä löytyy joukko valmiiksi määriteltyjä ydinolioita (core objects): o Array, Boolean, Date, Function, Math, Number, RegExp, ja String Muuttuja on esiteltävä ennenkuin sitä voi käyttää o nimessä saa käyttää kirjaimia (A Z, a z), numeroita (0 9), (_). o ei saa alkaa numerolla, esimerkiksi - 99tunnus ei ole sallittu - tunnus _99tunnus on sallittu Muuttujalle voidaan antaa arvo esittelyn yhteydessä, mutta se ei ole välttämätöntä <script type="text/javascript"> var luku = 12; //Number var nimi = "Outi Ohjelmoija"; var nimi2; </script> Viittausalue: o paikallisia omassa funktiossaan o funktioiden ulkopuolella esitellyt globaaleja muuttujia o muuttujaa voi käyttää ennen sen esittelyä, variable hoisting (sitä tulee välttää)

if (ehtolauseke) lause [lelse lause] var ika;... if (ika<10) { document.write("lapsi"); //ehkä muitakin lauseita } else if (ika <30) { document.write("nuori"); //ehkä muitakin lauseita } else if (ika <65) { document.write("aikuinen"); //ehkä muitakin lauseita } else document.write("seniori");

switch (lauseke) { case arvo1: lause; [lause;]* break; case arvo2: lause; [lause;]* break;... case arvon: lause; [lause;]* break; default: statement(s) } switch (luku) { case 10: alert("luku on 10"); break; case 20: alert("luku on 20"); break; default: alert("ei ollut luku 10 eikä 20, ei.") } while (ehtolauseke) lause [;lause]* var i=10; while (i>0) { document.write(i+"\n"); i ; }

for (aloituslause; lopetuslause; silmukkamuutujan muutos){ lause [;lause]* } for (var i=0; i<10; i++) document.write(taulu[i,j]) } break o suoritus määrätään siirtymään ulos lauseesta o break lauseen avulla voidaan tulla ulos mistä tahansa lauselohkosta continue l o käytetään silmukan sisällä määräämään, että o suoritus siirtyy välittömästi testaamaan silmukkaehdon voimassaolemista o mikäli se vielä täyttyy, silmukan lauseiden suoritusta jatketaan seuraavan kierroksen alusta.