marți, 22 martie 2011

JavaScript - Evenimente JavaScript (part 19)

Evenimente JavaScript

Evenimentele sunt elemente foarte importante in programarea JavaScript. Acestea sunt actiuni provocate de cele mai multe ori de vizitatorul paginii.

Daca vizitatorul apasa un buton din pagina se provoaca evenimentul "Click". Daca mouse-ul este deasupra unui link, se declanseaza un eveniment "MouseOver".
JavaScript poate reactiona la unele evenimente. Aceasta se poate realiza cu ajutorul "event-handlers" (manageri de evenimente sau gestionar de evenimente).
Handlerele de evenimente se adauga ca atribute ale etichetelor HTML.

De exemplu, daca dorim sa apelam o functie "nume_functie()" de fiecare data cand s-a modificat un anumit obiect Text, procedam astfel: atribuim functia "nume_functie()" handlerului de eveniment "onChange" al obiectului Text respectiv, ca in exemplul de mai jos:
<input type="text" size="25" name="nume" onChange="nume_functie(this)">

- "onChange" este atribut al etichetei <input>, a carui valoare, intre ghilimele, este functia "nume_functie()". In locul functiei dintre ghilimele putem sa scriem direct tot codul din functie, separand prin caracterul ; comenzile JavaScript (acest lucru este nerecomandat in cazul unui cod mare).

1. Evenimentele JavaScript

In continuare este prezentata o lista cu evenimentele care pot fi folosite in programarea JavaScript:

onClick - Se executa la apasarea unui click pe un obiect.(document, link, buton, checkbox, buton radio, buton reset sau submit)
onDblClick - Executa actiunea la efectuarea a doua clickuri unul dupa altul

on MouseOver - Actioneaza cand se pozitioneaza mouse-ul deasupra unui link sau unei imagini
onMouseOut - Actioneaza cand se muta mouse-ul de pe un hiperlink sau o imagine
onMouseMove - Actioneaza cand se misca mouse-ul

onMouseDown - Actioneaza cand tinem apasat unul din butoanele mouse-ului, pe un document, buton sau link

onMouseUp - Actiunea se executa atunci cand este eliberat degetul de pe unul din butoanele mouse-ului

onFocus - Actiunea apare cand este activat un obiect camp: caseta password, camp text, bloc de text, camp FileUpload dintr-un formular HTML.

onChange - Actiunea apare cand se modifica continutul unui camp dintr-un formular HTML (o parola, text, bloc de text, sau FileUpload) si cand acesta pierde focalizarea

onBlur - Este inversul lui "onFocus()", este declansat atunci cand un obiect nu mai este activ, prin trecerea la o alta resursa

onLoad - Actioneaza cand browserul a terminat de incarcat un document, imagine sau toate Frame-urile dintr-un <FRAMESET>

onUnload - Actiunea apare cand se iese din un document si se incarca un altul.
onKeydown - Actiunea apare cand se apasa o tasta
onKeyUp - Actiunea apare dupa ce am terminat de apasat pe o tasta

onKeyPress - Apare la apasarea unei taste (precede "KeyDown")

onSubmit - Actiunea apare la inaintare (trimiterea) unui formular
onReset - Actiunea apare la reinitializarea unui formular

onSelect - Actiunea apare cand utilizatorul selecteaza text dintr-un obiect Text sau Textarea.

onAbort - Actiunea se executa in momentul in care se renunta la incarcarea unei imagini, ferestre

onError - Actiunea apare cand actiunea de incarcare a unei imagin sau document esueaza.

onMove - Actiunea se declanseaza cand se comanda deplasarea ferestrei sau cadrului

onResize - Actiunea se declanseaza atunci cand se comanda redimensionarea ferestrei sau cadrului
In continuare sunt prezentate obiectele impreuna cu evenimentele pe care le pot folosi:

Evenimente ale ferestrelor

- onload
- onunloavd - onresize: (in Netscape)

- onmove

- onabort

- onerror

- onfocus

- onblur

Evenimente de mouse:
- onmousedown

- onmouseup

- onmousemove
- onmouseover
- onmouseout

- ondblclick

- onclick

Evenimente ale formularelor si elementelor acestora:
- onsubmit

- onreset
- onchange
- onselect

- oclick

- onblur

- onfocus

Evenimente ale tastelor

- onkeydown

- onkeyup
- onkeypress

2. Exemple cu evenimentele JavaScript

Pentru a intelege mai bine modul de folosire a evenimentelor, studiati cu atentie exemplele de mai jos.

1. - Exemplu "onClick"
Daca dorim executia unei anumite actiuni la apasarea unui click de mouse, folosim "onClick".

<form>

    <input type="button" value="Apasa" onClick="alert('Salut')" />

</form> Acest exemplu deschide o fereastra alert cand este apasat butonul "Apasa".

2. - Exemplu "OnMouseOver - onMouseOut - onClick"
<html>
<head>
<script type="text/javascript">
  function setfocus() {
    document.form2.camp.select();
  }
</script>
</head>
<body>
<br>
<a href="http://www.marplo.net"
  OnMouseOver="this.style.color='red';"
  OnMouseOut="alert('Fereastra deschisa cu onMouseOut')">
Apasa aici pentru a vizita MarPlo.net!
</a>
<form name="form2">
  <input type="text" name="camp" size="30" value="orice text">
  <input type="button" value="Selecteaza" onclick="setfocus()">
</form>
</body>
</html> Pagina HTML rezultata din acest cod va afisa urmatorul rezultat:
- Cand se pozitioneaza mouse-ul pe legatura "Apasa aici pentru a vizita MarPlo.net!", culoarea textului devine rosu (datorita expresiei "this.style.color='red'" - "this" face referire la obiectul curent care e actionat).
Dupa ce mutati mouse-ul de pe link, se va deschide (prin evenimentul "onMouseOut") o fereastra Alert.
Cand apasati butonul "Selecteaza", va fi selectat textul din campul de text.
3. - Exemplu "onKeyUp"
Acest script foloseste evenimentul "onKeyUp" pentru a muta cursorul in alt camp dupa ce a fost tastat ultimul caracter permis in caseta.
<html>
<head>
<script type="text/javascript">
<!--
  function urmatorul(elment,text) {
    if (text.length==elment.maxLength) {
      next=elment.tabIndex;
      if (next<document.form3.elements.length) {
        document.form3.elements[next].focus();
      }
    }
  }
//-->
</script>
</head>
<body>
- Cursorul se muta automat in urmatoarea caseta atunci cand s-a completat tot campul
precedent (cand se ajunge la lungimea stabilita a campului, aici 4 caractere) <br>
<form name="form3">
  <input size="4" tabindex="1" name="field" maxlength="4" onkeyup="urmatorul(this,this.value)">
  <input size="4" tabindex="2" maxlength="4" onkeyup="urmatorul(this,this.value)">
  <input size="4" tabindex="4" maxlength="4" onkeyup="urmatorul(this,this.value)">
</form>
</body>
</html> - Functia "urmatorul(elment,text)", are doua argumente: "element" (care, prin apel, se refera la caseta "input") si "text" (se refera la valoarea casetei).
In apelul functiei: "urmatorul(this,this.value)", "this" se refera la obiectul curent (reprezinta primul argument) iar al doile argument "this.value" reprezinta valoarea obiectului curent (valoarea din camp).
Observati folosirea evenimentului onKeyup, pentru a se trece la urmatorul camp atunci cand s-a completat ultimul caracter din caseta precedenta.
Pentru a intelege mai bine puteti sa inlocuiti "onkeyup" cu onkeydown pentru a vedea diferenta.
Pagina HTML rezultata din acest cod va afisa urmatorul rezultat:

JavaScript - Obiecte de nivel 3 si 4 (part 18)

Obiecte de nivel 3 si nivel 4
In aceasta lectie se continua prezentarea celorlalte obiecte de nivel 3 si obiectul de nivel 4, "Option".
1. Obiectul Reset
Acest obiect este asociat butonului "reset" dintr-un formular HTML, cand butonul este actionat sterge toate datele noi introduse in formular, stabilind campurile la valoarea lor initiala.
Proprietati ale obiectului "Reset" sunt urmatoarele :
form - returneaza obiectul Form ce contine butonul
name - contine sirul specificat in atributul name al etichetei <input> corespunzatoare butonului
type - contine sirul specificat in atributul type al etichetei <input>
value - returneaza sirul adaugat in atributul value din eticheta <input> a butonului
Metode ale obiectului "Reset" sunt urmatoarele :
blur() - dezactiveaza butonul
click() - apeleaza un eveniment "click" pt. butonul respectiv
focus() - activeaza butonul
2. Obiectul Submit
Acest obiect este asociat butonului "submit" dintr-un formular HTML, cand butonul este actionat trimite datele din formular spre calea specificata in atributul "action" din eticheta <form>, pentru a fi procesate (de exemplu, la un script PHP).

Proprietati ale obiectului "Submit" sunt urmatoarele :

form - returneaza datele din intreg formularul ce contine butonul "submit"
name - returneaza sirul specificat in atributul name al etichetei <input> corespunzatoare butonului
type - returneaza sirul specificat in atributul type din eticheta <input> a butonului "submit"
value - returneaza sirul adaugat in atributul value din eticheta <input> a butonului
Metode ale obiectului "Submit" sunt urmatoarele :
blur() - dezactiveaza butonul
click() - apeleaza un eveniment "click" pt. butonul respectiv
focus() - activeaza butonul
handle Event() - apeleaza handlerul pt. evenimentul specificat
3. Obiectul Select
Acest obiect face referire la caseta cu lista de selectare si lista derulanta dintr-un formular HTML, ambele permit utilizatorului selectarea unor valori dintr-o lista predefinita. Dintr-o lista derulanta se poate selecta numai o singura valoare iar dintr-o caseta cu lista de selectare se pot selecta mai multe valori.
. Obiectul select poate apare ca lista derulanta (in mod initial) sau ca lista de selectare daca se specifica proprietatea "multiple" ca adevarata (true).
Proprietati ale obiectului "Select" sunt urmatoarele :
form - returneaza obiectul Form ce contine lista de selectare
length - returneaza numarul de optiuni din lista de selectare
name - returneaza sirul specificat in atributul name al etichetei HTML corespunzatoare
type - returneaza sirul specificat in atributul type al etichetei HTML (pentru instantele select ce contin atributul "multiple" returneaza "select-multiple", iar pentru cele fara acest atribut returneaza "select-one")
options - returneaza un tablou ce contine toate elementele din caseta de selectare. Elementele sunt definite cu eticheta HTML <options>. aceasta proprietate are doua subproprietati: "length" si "selectedIndex"
selectedIndex - returneaza un numar care specifica indicele optiunii selectate din caseta de selectare
Metode ale obiectului "Select" sunt urmatoarele :
blur() - dezactiveaza caseta de selectare
click() - apeleaza un eveniment "click" pt. caseta de selectare
handleEvent() - transfera un eveniment handlerului de eveniment corespunzator
4. Obiectul Text
Acest obiect este reprezentarea casetei de tip "text" dintr-un formular HTML.
Obiectul text serveste ca unealta de capturare a datelor dintr-o caseta de tip "text".
Proprietati ale obiectului "Text" sunt urmatoarele :
defaultValue - returneaza valoarea casetei de text, specificate de atributul value. form - returneaza obiectul Form ce contine caseta de text
name - returneaza sirul specificat in atributul name al etichetei HTML corespunzatoare
type - returneaza sirul specificat in atributul type al etichetei HTML
value - returneaza valoarea afisata in caseta de text
Metode ale obiectului "Text" sunt urmatoarele :
blur() - dezactiveaza caseta de text
focus() - activeaza caseta de tip text
handleEvent() - transfera un eveniment handlerului de eveniment corespunzator
select() - selecteaza textul din caseta de text
5. Obiectul Textarea
Asemanator cu obiectul "Text", obiectul Textarea este reprezentarea casetei de tip "textarea" dintr-un formular HTML. Aceasta caseta permite adaugarea mai multor linii de text in acelasi camp (caseta).
Proprietati ale obiectului "Textarea" sunt urmatoarele :
defaultValue - returneaza valoarea zonei de text, specificate intre etichetele <textarea>
form - returneaza obiectul Form ce contine caseta textarea
name - returneaza sirul specificat in atributul name al etichetei HTML corespunzatoare
type - returneaza sirul specificat in atributul type al etichetei HTML
value - returneaza valoarea afisata in caseta textarea
Metode ale obiectului "Textarea" sunt urmatoarele :
blur() - dezactiveaza zona de text
focus() - activeaza zona de text
handleEvent() - transfera un eveniment handlerului de eveniment corespunzator
select() - selecteaza textul din campul de text
6. Obiectul Option (nivel 4)
Acest obiect este singurul obiect de nivel 4, acesta face referire la elementele <option> definite intre etichetele <select>.
Obiectul option este un subobiect a obiectului "Select".
Proprietatile obiectului "Option" sunt urmatoarele :
defaultSelected - face referire la optiunea care este selectata in mod prestabilit in caseta de selectare
index - face referire la locatia indexata a unui element in tabloul "Select.options" (incepe cu 0)
selected - face referire la valoarea selectata a casetei de selectare
text - face referire la textul pentru optiune
value - face referire la vloarea care este returnata cand este selectate optiunea.

JavaScript - Obiecte de nivel 3(part 17)

Obiecte de nivel 3

Obiectele de nivelul 3 sunt subobiecte ale obiectului "Form".

La fel cum imbricati (adAaugati) elementele HTML in interiorul etichetelor <form>, aceste obiecte sunt imbricate in interiorul obiectului "Form".

1. Obiectul Button

Java Script are trei obiecte buttons: Button, Submit si Reset. Fiecare din ele are o reprezentare a unei etichetei HTML.

Obiectul Button este un buton generic, la care, pentru a fi folosit pt. o anumita functie, trebuie sa-i adaugam linii de cod specifice, dar celelalte doua: Submit (trimite datele la un script) si Reset (sterge datele noi completate in formular); au scopuri specifice. Totusi, se poate sa folosim un obiect "Button" pentru a avea acelasi rol ca si obiectul "Submit" (apeland Form.submit()), sau ca obiect "Reset" (apeland Form.reset()).


Proprietati ale obiectului "Button" sunt urmatoarele :

form - returneaza obiectul Form al carui membru este butonul

name - returneaza sirul specificat in atributul name al etichetei HTML <input>

type - returneaza sirul specificat in atributul type al etichetei HTML <input>

value - returneaza sirul care apare in reprezentarea grafica a unui buton, afisata in browser

Metode ale obiectului "Button" sunt urmatoarele :

blur() - dezactiveaza butonul

click() - apeleaza un eveniment click pentru butonul respectiv.

focus() - eveniment de activare a butonului

handle Event() - transfera un eveniment handlerului de eveniment corespunzator

2. Obiectul Checkbox

Acest obiect reprezinta caseta de validare HTML dintr-un "Form", care permite vizitatorului sa specifice o valoare "DA" sau "NU", ori "true" sau "false".

Proprietati ale obiectului "Checkbox" sunt urmatoarele :

checked - returneaza o valoare booleana care determina daca este bifata caseta de validare
defaultChecked - returneaza o valoare booleana care pastreaza starea initiala a casetei de validare. Este stabilita cu atributul "checked"

form - returneaza obiectul Form al casetei de validare

name - returneaza sirul specificat in atributul name al etichetei HTML <input>

type - returneaza sirul specificat in atributul type al etichetei HTML <input>

value - returneaza o valoare returnata cand formularul este inaintat

Metode ale obiectului "Checkbox" sunt urmatoarele :

blur() - dezactiveaza caseta de validare

click() - apeleaza un eveniment click pentru caseta de validare respectiva.
focus() - eveniment de activare a caseta de validare
handle Event() - transfera un eveniment handlerului de eveniment corespunzator
3. Obiectul FileUpload

Acest obiect este echivalentul elementului folosit pentru incarcarea fisierelor.
Cu Java Script nu se poate face prea multe cu acest obiect decat facand referire la proprietatile sale.

Proprietati ale obiectului "FileUpload" sunt urmatoarele :

form - face referire la obiectul Form ce contine caseta FileUpload

name - contine sirul specificat in atributul name al casetei FileUpload

type - contine sirul specificat in atributul type al casetei FileUpload

value - contine sirul care specifica numele caii fisierului pt. upload

Metode ale obiectului "FileUpload" sunt urmatoarele :

blur() - dezactiveaza caseta FileUpload
focus() - activeaza caseta FileUpload
handle Event() - transfera un eveniment handlerului de eveniment corespunzator
select() - selecteaza suprafata de adaugare a datelor pentru caseta FileUpload.

4. Obiectul Hidden

Acest obiect se foloseste pentru stocarea anumitor date care vor fi transferate unei prelucrari pe server. Datele stocate in obiectul "hidden" sunt ascunse, nu apar vzibile in browser.

Proprietati ale obiectului "Hidden" sunt urmatoarele :

form - face referire la formularul ce contine obiectul Hidden

name - contine numele obiectului Hidden

type - contine sirul specificat in atributul type al casetei Hidden

value - contine sirul specificat in atributul "value" al obiectului Hidden

5. Obiectul Password

Obiectul password este asemanator cu obiectul "text", diferenta fiind ca toate caracterele introduse in cazeta "Password" sunt afisate cu "*" pentru a nu se vedea textul introdus.

Proprietati ale obiectului "Password" sunt urmatoarele :

defaultValue - face referire la atributul "value" al casetei pt. parola din formularul HTML

form - face referire la obiectul Form ce contine caseta pt. parola
name - contine sirul specificat in atributul name al pt. parola
type - contine sirul specificat in atributul type al casetei pt. parola
value - face referire la continutul curent din caseta pt. parola

Metode ale obiectului "Password" sunt urmatoarele :

blur() - dezactiveaza caseta pt. parola
focus() - activeaza caseta pt. parola
handle Event() - transfera un eveniment handlerului de eveniment corespunzator

select() - selecteaza textul adaugat in caseta pt. parola.

6. Obiectul Radio

Butoanele radio sunt controale dintr-un formular HTML care se anuleaza reciproc, astfel daca este selectat un buton radio, toate celelalte butoane din set sunt neselectate. Setul de butoane se defineste avand aceasi proprietate "name" pentru toate butoanele radio.

Proprietati ale obiectului "Radio" sunt urmatoarele :

checked - retrneaza o valoare care determina daca este bifat obiectul radio

defaultChecked - returneaza o valoare care pastreaza starea initiala a obiectului Radio, care se stabileste cu atributul "checked" al etichetei <input> respective
form - returneaza obiectul Form ce contine obiectul Radio

name - contine sirul specificat in atributul name al etichetei <input>
type - contine sirul specificat in atributul type al etichetei <input>

value - face referire la atributul value al etichetei <input>
Metode ale obiectului "Radio" sunt urmatoarele :

blur() - dezactiveaza obiectul Radio
click() - apeleaza un eveniment "click" pt. obiectul Radio focus() - activeaza un buton radio

handle Event() - transfera un eveniment handlerului de eveniment corespunzator.