JAVASCRIPT. Beteende

Relevanta dokument
! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

JS & beteende. TNMK30 - Elektronisk publicering

PHP. Dynamiska webbsidor

Introduk+on +ll programmering i JavaScript

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Dynamisk HTML JavaScript och webbläsarens objektmodell

PHP. TNMK30 - Elektronisk publicering

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia

JavaScript. En Introduktion

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

Lektion 5, del 1, kapitel 12

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

En snabb titt på XML LEKTION 6

JavaScript. DOM Scripting

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Avancerade Webbteknologier

Lektion 3 HTML, CSS och JavaScript

Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...

Användarhandledning Version 1.2

Tentamen OOP

Introduktion HTML och PHP 732G16 Databaser design och programmering

SMD 134 Objektorienterad programmering

Introduktion till PHP

Objektorienterad programmering i Java

Modul 8 Hantering av indata

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Föreläsning 6: Introduktion av listor

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

WEBBUTVECKLING CSS. Formatmallar - CSS

Karlstads Universitet, Datavetenskap 1

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Laboration 6 Formulär och stränghantering övningar/uppgifter

Labora&on 1 Variabler och beräkningar övningar/uppgi9er

Typkonvertering. Java versus C

Övningar i JavaScript del 2

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

Övning 1 Vi börjar med en vanlig html-fil där html används för både innehåll och utseende:

Programmering A. Johan Eliasson

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Lektion 2 Del 1 Kapitel 6

Programmeringsteknik med C och Matlab

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Webbprogrammering. Sahand Sadjadee

JavaScript En Introduktion

OOP Objekt-orienterad programmering

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Objektorienterad programmering D2

Grundläggande programmering med C# 7,5 högskolepoäng

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

PROGRAMMERING-Java Omtentamina

Exemple på Tentauppgifter Webbprogrammering

Föreläsning 3-4 Innehåll

Labbrapport: HTML och CSS

Labora&on 8 Formulär övningar/uppgi6er

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

Visual Basic, en snabbgenomgång

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Kursplanering Utveckling av webbapplikationer

F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

EDA095 JavaScript. Per Andersson. Maj 4, Lund University Per Andersson EDA095 JavaScript Maj 4, / 23

Programmering för språkteknologer II, HT2014. Rum

<script src= "

INTRODUKTION TILL ANGULAR JS

Övningar i JavaScript del 4

E12 "Evil is going on"

Omtenta, Programmeringsteknisk översiktskurs, VT06

F8 Webbteknologier 2. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Chapter 3: Using Classes and Objects

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Tentamen Grundläggande programmering

Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

2I1073 Föreläsning 1. HTML och XHTML XHTML

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Webbprogrammering - 725G54 PHP. Foreläsning II

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

JavaScript. JavaScript Ramverk (Bibliotek) jquery + jquery UI

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Föreläsning 1 & 2 INTRODUKTION

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

E07 "Greased Lightning"

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

Klassdeklaration. Metoddeklaration. Parameteröverföring

Transkript:

JAVASCRIPT Beteende

OVERVIEW HTML Formulär JavaScript Syntax Events DOM Validering av fomulär

WEBBPROGRAMMERING PÅ KLIENTSIDAN Skriptspråk som körs på klientsidan (klientskript) Koden exekveras i webbläsaren efter att sidan har skickats från servern Kontrollera/manipulera en sidas innehåll utan att behöva skicka tillbaka till servern Svara på actions från användaren som inmatning av text, klick client HTTP Request server och knapptryckningar HTTP Response (HTML, CSS, JS)

HTML FORMULÄR Används för att ta emot information från användaren och skickar den till en webbserver Uppbyggd av en grupp av gränssnittskontroller T.ex. textfält, checkboxar, radioknappar etc. Informationen från användaren skickas till servern som URL variabler i en query string (get) http://www.google.se/search?q=html+formulär http://./formular_ex.html?user=namn&pwd=12345 HTTP post request (post)

HTML FORMULÄR Formulärkontroller, text och övriga element placeras inom <form> taggen Egenskapen action är åtgärden som utförs när formuläret skickas Den ger webbadressen till den sida som kommer att behandla formulärdata <form action= URL >!!<div>!!!formulärkontroller!!</div>! </form>!

INPUT KONTROLLEN input är det vanligaste formulärelementet Används för att skapa många kontroller Inline element och måste öppnas/stängas i samma tag <input /> name attributen definierar namnet på parametern som ska skickas till webbservern value ger en initial text värde till kontrollen type anger typ av kontroll Button, checkbox, color, date, file, hidden, password, radio, reset, search, submit, text, Exempel: js_formular_1

FORMULÄRKONTROLLER <input>! <textarea>! <label>! <fieldset>! <legend>! <select>! <option>! <optgroup>! <button>! <datalist>! <output>! Input kontroll Flera raders textfält Etikett för en input kontroll beskriver vad som ska anges i fältet Gruppera formulärkontroller Anger rubrik till en fieldset Definierar en drop-down lista Definierar ett värde i drop-down listan Grupperar värden i en drop-down lista Klickbar knapp Definierar ett set av förbestämda option element som är tillgängliga för input kontroller Definierar resultatet av en beräkning Exempel: js_formular_2

JAVASCRIPT Skriptspråk: tolkat programmeringsspråk Exekveras i webbläsare av javascriptsmotor Används för att göra webbsidor interaktiva Ändra innehåll och presentation Validera formulär Händelsestyrd (event-driven) programmering Stödjs inte identiskt av alla webbläsare

JAVASCRIPT Avslappnade syntaxregler Svagt typat Variabler behöver inte deklareras Fel är ofta tysta Inkluderas i en webbsida och integrerar med sidans HTML/CSS innehåll

INKLUDERA JAVASCRIPT KOD Direkt i HTML sidans head eller body innanför script taggar Bör undvikas! à Separation av innehåll, presentation och beteende! I separat.js fil och inkluderas via script taggen <script> alert( message"); </script>! script taggen placeras helst i HTML sidans head Alternativt längst ner i HTML sidans body! <script src= filnamn.js" type="text/javascript"></script>! Exempel: js_include

JAVASCRIPT VARIABLER Deklareras med var! Kan deklareras implicit genom att tilldela de ett värde Svagt typade och dynamiskt definierade Har typer men de behöver inte anges vid deklaration Typen bestäms eller konverteras beroende på värdet som variabeln tilldelas 8 huvudtyper: Number, Boolean, String, Array, Object, Function, Null, Undefined! Kan ta reda på typen genom typeof operator var namn = John";! var antal = 2;! procent = 0.5;!

JAVASCRIPT FUNKTIONER Funktioner som i C++ function funktionsnamn( parameter1, parameter2, )! {!!kod som ska evekveras;!!!return värde; /* ej obligatoriskt */! };! var x = mult(4, 3);!! function mult(a, b) {! return a * b;! }! Funktioner kan också vara anonyma och läggas in direkt i variabler, objekt eller event

JAVASCRIPT OBJEKT Objekt är behållare av värden Egenskaper Metoder var namn = {!!attributnamn: värde,!!...,!!metodnamn: function(parametrar) {!!!kod som ska exekveras;!!}!! };! var person = {!!firstname: "Sven",!!lastName: "Svensson",!!age: 40,!!getAge: function() {return this.age;}! };! Exempel: js_syntax

JAVASCRIPT SCOPE Set av variabler, objekt, funktioner som jag kan nå Lokala variabler nås enbart inuti funktioner Globala variabler nås från var som helst i JS koden Variabler deklarerade utanför funktioner blir global Nås även från kod i andra.js filer Obs! om samma variabelnamn à variabeln skrivs över var a = 3; //global variabel function test() {!!a = 2*2;! b = 6; // implicit deklaration (variabeln har inte deklarerats med var) var c = 2; //lokal variabel // inuti funktionen: a=4, b=6, c=2 } test();! // utanför funktionen: a=4, b=6, c=undefined Exempel: js_scope

HÄNDELSESTYRD PROGRAMMERING JavaScript program svarar på actions från användaren (event-driven) Ingen main! Events Sidan har laddats färdigt musklick, tangenttryck etc.

JAVASCRIPT SYNTAX Kommentarer // kommentar /* kommentar */! Skriva ut i konsol Bra vid debugging & inspektera koden var namn = "John";! console.log(namn);!! console.log("john");!

JAVASCRIPT SYNTAX String "" eller '' Metoder: charat, indexof, replace, split, substring, capitalize, tolowercase, Egenskaper: length! Concatenate med + : 2+1= 3 MEN "2"+1="21"! Escape med \ : "Han heter \"John\""! Nästla med '""': 'Han heter "John"! Konvertera till sträng med: "" eller ''

JAVASCRIPT SYNTAX Number Samma typ för heltal (int) och reella tal (double) Operatorer: +, -, *, /, %, +=, -=, *=, /=, %=! Konvertera med: parseint, parsefloat! Math objektet ger tillgång till matematiska metoder och egenskaper min, max, abs, random, ceil, sqrt, PI, E!

JAVASCRIPT SYNTAX Boolean true, false! Falska värden: 0, 0.0, NaN, "", null, undefined! Logiska operatorer >, <, >=, <=, &&,,!, ==,!= (~ samma som i C++) Konverterar till rätt typ vid jämförelser 3.0 == 3 à true 4.5 >= 3 à true ===,!== : strikta operatorer Konverterar ej typen, kolla både typ och värde av variabler 3.0 === 3 à false

JAVASCRIPT SYNTAX Många satser och loopar samma som i C++ if/else satser for loopar while, do/while loopar break och continue! Arrays initieras på 2 sätt var minarray1 = ["element1", "element2", "element3"];! //eller var minarray2 = [];! minarray2[0] = "el1";! minarray2[3] = "el2";! minarray2[5] = "el3";! Exempel: js_functions

HÄNDELSESTYRD PROGRAMMERING JavaScript program svarar på HTML event HTML element kan inkludera JavaScript funktioner som event hanterare (event handlers) <html-element event= Exempel på event function(); onload: webbsidan är färdigladdad onclick: HTML element klickas onmouseover: mus över elementet onsubmit: när <submit> knapp klickas >...</html-element> Lista över HTML event: http://www.w3schools.com/jsref/dom_obj_event.asp

HÄNDELSESTYRD PROGRAMMERING 1. Givet ett html element (t.ex. knapp) <button> Tryck här! </button>! 2. och en matchande event (t.ex mus-klick) onclick! 3. Skriv en funktion som ska exekveras när knappen trycks function knapptryck() {! alert("hej!");! alert("vad heter du?");! }! 4. Länka funktionen till event och knapp <button onclick="knapptryck();"> Tryck här! </button>! Exempel: http://jsfiddle.net/tnmk30/9zkmjxhv/

DOM Document Object Model Uppsättningen av JavaScript (JS) objekt som representerar innehållet (div, p, h etc.) för en HTML sida En DOM objekt per HTML element Via JS kod kan man interagera med DOM objekt och dynamiskt ändra på HTML element Byta utseende, status, innehåll

DOM document! <html>! <head>! <body>! <title>! <h1>! <div>! Text: titel <p>! <a>! Text: innehåll Attribut: href! Text: länktext

ACCESS DOM OBJEKT document objektet representerar hela html dokumentet och används för att komma åt alla andra DOM objekt. Åtkomst DOM objekt via HTML elementens id attribut <button id="mybtn" onclick="knapptryck(); >Tryck mig</button>! getelementbyid metoden accepterar en id sträng och returnerar motsvarande DOM objekt eller null! DOM objektets attribut kan sedan manipuleras via objectnamn.attributnamn var button_obj = document.getelementbyid("mybtn");! button_obj.innerhtml = "Tack! ;! Exempel: http://jsfiddle.net/tnmk30/lwmkl3lh/

DOM OBJEKT EGENSKAPER Text innehåll kan hämtas/ändras oftast med innerhtml: ändrar text eller HTML taggar i DOM noder value: ändrar värden i widgets (t.ex. textfält) Vanliga egenskaper tagname: Elementets HTML tagg classname: Elementets CSS klass innerhtml: Elementets Innehåll src: URL adressen av en bild <button id="mybtn" onclick="bytknapptext();"> Tryck mig </button>!

FIXA STILEN MED DOM style egenskapen gör att man kan ändra på CSS regler för ett element Innehåller alla attribut som finns i CSS Attribut namnen är samma men istället för gemener och bindestreck (-) skrivs namnen ihop med kamelnotation: background-color à backgroundcolor font-family à fontfamily Värdena som ska tilldelas skrivs som strängar Enheter angivs som i CSS Exempel: js_events

VALIDERA FORMULÄRDATA Använd JavaScript för att validera den information som användaren har matat in i en formulär Skriv en funktion som körs när <submit> knappen trycks och onsubmit händelsen anropas Funktionen borde kontrollera om de inmatade värdena har rätt typ och format och returnera true/false! Bara om true ska informationen skicka till webbservern Exempel: js_validering

ATT TÄNKA PÅ: JAVASCRIPT Vissa har JavaScript avaktiverat på sina webbläsare Använd inte JavaScript till sånt som är viktigt Använd noscript element för att bestämma innehåll som kommer att visas i det här fallet Sidan borde vara användbar även utan JavaScript

ATT TÄNKA PÅ: JAVASCRIPT Separera mellan Innehåll à HTML Presentation à CSS Beteende à JavaScript Deklarera alltid variabler explicit med var Kolla om en variabel har ett värde eller är undefined innan du använder den Använd semikolon även fast det funkar utan

LÄNKAR TILL MATERIAL/LÄSNING HTML formulärtaggar: http://www.w3schools.com/html/html_forms.asp W3schools JavaScript tutorial: http://www.w3schools.com/js/default.asp W3schools JavaScript exempel: http://www.w3schools.com/js/js_examples.asp HTML DOM event: http://www.w3schools.com/jsref/ dom_obj_event.asp HTML DOM objekt egenskaper och metoder: http://www.w3schools.com/jsref/dom_obj_all.asp

På måndag skickar vi data! TP1 kl. 09:15