MySQL Java JavaScript PHP Python HTML-CSS C-sharp C++ Go

Lucrul cu Formulare

Formulare și Elementele lor

Unul dintre modurile de interacțiune cu utilizatorii sunt formularele HTML. De exemplu, dacă dorim să obținem anumite informații de la utilizator, putem defini pe o pagină web un formular care va conține câmpuri text pentru introducerea informațiilor și un buton pentru trimiterea acestora. Și după introducerea datelor, putem prelucra informațiile introduse.

Pentru crearea unui formular se utilizează elementul <form>:

<form id="search" name="search">
</form>

În JavaScript, formularul este reprezentat de obiectul HtmlFormElement. După crearea formularului, ne putem referi la el în diferite moduri.

Obținerea Formularului

Primul mod implică adresarea directă după numele formularului:

const searchForm = document.search;

Al doilea mod constă în adresarea la colecția de formulare a documentului - colecția forms și căutarea în aceasta a formularului dorit:

const searchForm1 = document.forms["search"];   // după nume
const searchForm2 = document.forms[0];          // după index

Al treilea mod este obținerea formularelor prin metodele standard pentru căutarea elementelor după id, tag sau selector. De exemplu:

const formById = document.getElementById("search");
const formByName = document.getElementsByName("search")[0];
const formBySelector = document.querySelector("form");

Proprietăți și Metode ale Formularelor

Formularul are mai multe proprietăți, dintre care voi menționa principalele:

  • name: numele formularului
  • elements: colecția de elemente ale formularului
  • length: numărul de elemente ale formularului
  • action: valoarea atributului action - adresa de trimitere a formularului
  • method: valoarea atributului method - metoda HTTP utilizată pentru trimitere

De exemplu, să obținem proprietățile formularului:

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <title>FDC.COM</title>
</head>
<body>
   <form id="search" name="search" action="https://google.com/search" method="get">
       <input type="text" id="key" name="q" />
       <input type="submit" id="send" name="send" />
   </form>
   <script>
   const form = document.getElementById("search");
   console.log(form.elements);     // HTMLFormControlsCollection(2) [input, input, q: input, send: input]
   console.log(form.length);       // 2
   console.log(form.name);         // search
   console.log(form.action);       // https://google.com/search
   console.log(form.method);       // get
   </script>
</body>
</html>

Dintre metodele formularului, trebuie menționat metoda submit(), care trimite datele formularului pe server, și metoda reset(), care curăță câmpurile formularului:

const form = document.forms["search"];
form.submit();
form.reset();

Elementele Formularelor

Formularul poate conține diferite elemente HTML de intrare: input, textarea, button, select, etc. Fiecare dintre aceste elemente are propriul tip JavaScript:

Pentru a obține elementele unui formular, putem folosi trei metode:

1. Utilizarea metodelor standard getElementById(), getElementsByClassName(), getElementsByTagName(), getElementsByName(), querySelector() și querySelectorAll() pentru căutarea elementelor, respectiv, după id, clasă, tag, nume sau selector. De exemplu, luăm formularul definit anterior și obținem câmpul său de intrare:

// obținem elementul după id="key"
const keyField = document.getElementById("key");
console.log(keyField);

2. Utilizarea proprietății elements a formularului corespunzător. De exemplu:

const form = document.getElementById("search");
   // obținerea câmpului după index
   const keyField = form.elements[0];
   console.log(keyField);
   // obținerea aceluiași câmp, dar prin nume
   const keyField2 = form.elements["q"];
   console.log(keyField2);

3. Sau folosind numele formularului și al elementului. De exemplu:

// câmpul q pe formularul search
   const keyField = document.search.q;
   console.log(keyField);

Proprietățile Elementelor Formularelor

Toate acestea au o serie de proprietăți și metode comune. La fel ca și formularul, elementele de formă au proprietatea name, prin care se poate obține valoarea atributului name. O altă proprietate importantă este value, care permite obținerea sau modificarea valorii câmpului:

<form name="search">
   <input type="text" name="key" value="hello world"></input>
   <input type="submit" name="send"></input>
</form>
<script>
const form = document.getElementById("search");
// obținerea câmpului formularului după nume
const keyField = form.elements["key"];
// obținerea valorii câmpului
console.log(keyField.value);
// setarea valorii câmpului
keyField.value = "Enter a string";
</script>

Proprietatea type permite obținerea tipului câmpului de intrare. Aceasta poate fi fie numele tag-ului elementului (de exemplu, textarea), fie valoarea atributului type pentru elementele input.

const form = document.getElementById("search");
// obținerea câmpului formularului după nume
const keyField = form.elements["key"];
// obținerea valorii câmpului
console.log(keyField.type); // text

Dintre metodele disponibile, se pot distinge metodele focus() (care stabilește focusul pe element) și blur() (care înlătură focusul de pe element):

const searchForm = document.forms["search"];
const keyField = searchForm.elements["key"];
keyField.focus();