HTML5 - Web Forms 2.0

Web Forms 2.0 to rozszerzenie funkcji formularzy w HTML4. Elementy i atrybuty formularzy w HTML5 zapewniają większy stopień znaczników semantycznych niż HTML4 i uwalniają nas od wielu żmudnych skryptów i stylów, które były wymagane w HTML4.

Element <input> w HTML4

Elementy wejściowe HTML4 używają rozszerzenia type atrybut do określenia typu danych. HTML4 udostępnia następujące typy -

Sr.No. Typ i opis
1

text

Dowolne pole tekstowe, nominalnie wolne od podziałów wierszy.

2

password

Dowolne pole tekstowe na poufne informacje, nominalnie wolne od podziałów wierszy.

3

checkbox

Zestaw zawierający zero lub więcej wartości ze wstępnie zdefiniowanej listy.

4

radio

Wyliczona wartość.

5

submit

Dowolna forma przycisku inicjuje przesłanie formularza.

6

file

Dowolny plik z typem MIME i opcjonalnie nazwą pliku.

7

image

Współrzędna odnosząca się do rozmiaru konkretnego obrazu, z dodatkową semantyczną informacją, że musi to być ostatnia wybrana wartość i inicjuje przesłanie formularza.

8

hidden

Dowolny ciąg, który normalnie nie jest wyświetlany użytkownikowi.

9

select

Wyliczona wartość, podobnie jak typ radia.

10

textarea

Dowolne pole tekstowe, nominalnie bez ograniczeń podziału wiersza.

11

button

Dowolna forma przycisku, który może zainicjować dowolne zdarzenie związane z przyciskiem.

Poniżej znajduje się prosty przykład użycia etykiet, przycisków opcji i przycisków przesyłania -

... 
<form action = "http://example.com/cgiscript.pl" method = "post">  
   <p> 
      <label for = "firstname">first name: </label> 
      <input type = "text" id = "firstname"><br /> 
   
      <label for = "lastname">last name: </label> 
      <input type = "text" id = "lastname"><br /> 
   
      <label for = "email">email: </label> 
      <input type = "text" id = "email"><br> 
   
      <input type = "radio" name = "sex" value = "male"> Male<br> 
      <input type = "radio" name = "sex" value = "female"> Female<br> 
      <input type = "submit" value = "send"> <input type = "reset"> 
   </p> 
</form> 
 ...

Element <input> w HTML5

Oprócz wyżej wymienionych atrybutów, elementy wejściowe HTML5 wprowadziły kilka nowych wartości dla typeatrybut. Są one wymienione poniżej.

NOTE - Wypróbuj wszystkie poniższe przykłady przy użyciu najnowszej wersji programu Opera przeglądarka.

Sr.No. Typ i opis
1 datetime

Data i czas (rok, miesiąc, dzień, godzina, minuta, sekunda, ułamki sekundy) zakodowane zgodnie z ISO 8601 ze strefą czasową ustawioną na UTC.

2 datetime-local

Data i czas (rok, miesiąc, dzień, godzina, minuta, sekunda, ułamki sekundy) zakodowane zgodnie z ISO 8601, bez informacji o strefie czasowej.

3 data

Data (rok, miesiąc, dzień) zakodowana zgodnie z ISO 8601.

4 miesiąc

Data składająca się z roku i miesiąca zakodowana zgodnie z ISO 8601.

5 tydzień

Data składająca się z roku i numeru tygodnia zakodowana zgodnie z ISO 8601.

6 czas

Czas (godzina, minuta, sekundy, ułamki sekund) zakodowany zgodnie z ISO 8601.

7 numer

Przyjmuje tylko wartość liczbową. Atrybut step określa dokładność, domyślnie 1.

8 zasięg

Typ zakresu jest używany w przypadku pól wejściowych, które powinny zawierać wartość z zakresu liczb.

9 e-mail

Akceptuje tylko wartość e-mail. Ten typ jest używany do pól wejściowych, które powinny zawierać adres e-mail. Jeśli spróbujesz przesłać prosty tekst, wymusza to podanie tylko adresu e-mail w formacie [email protected].

10 url

Akceptuje tylko wartość adresu URL. Ten typ jest używany do pól wejściowych, które powinny zawierać adres URL. Jeśli spróbujesz przesłać prosty tekst, wymusza to wprowadzenie tylko adresu URL w formacie http://www.example.com lub http://example.com.

Element <output>

HTML5 wprowadził nowy element <output>, który jest używany do reprezentowania wyników różnych typów danych wyjściowych, takich jak dane wyjściowe napisane przez skrypt.

Możesz użyć foratrybut, aby określić związek między elementem wyjściowym a innymi elementami w dokumencie, które wpłynęły na obliczenia (na przykład jako dane wejściowe lub parametry). Wartość atrybutu for to rozdzielona spacjami lista identyfikatorów innych elementów.

<!DOCTYPE HTML>

<html>
   <head>
      <script type = "text/javascript">
         
         function showResult() {
            x = document.forms["myform"]["newinput"].value;
            document.forms["myform"]["result"].value = x;
         }
      </script>
   </head>
   
   <body>

      <form action = "/cgi-bin/html5.cgi" method = "get" name = "myform">
         Enter a value : <input type = "text" name = "newinput" />
         <input type = "button" value = "Result"  onclick = "showResult();" />
         <output name = "result"></output>
      </form>
		
   </body>
</html>

To da następujący wynik -

Atrybut zastępczy

HTML5 wprowadził nowy atrybut o nazwie placeholder. Ten atrybut w elementach <input> i <textarea> stanowi wskazówkę dla użytkownika, co można wprowadzić w polu. Tekst zastępczy nie może zawierać znaków powrotu karetki ani znaków nowego wiersza.

Oto prosta składnia atrybutu zastępczego -

<input type = "text" name = "search" placeholder = "search the web"/>

Ten atrybut jest obsługiwany tylko przez najnowsze wersje przeglądarek Mozilla, Safari i Crome.

<!DOCTYPE HTML>

<html>
   <body>

      <form action = "/cgi-bin/html5.cgi" method = "get">
         Enter email : <input type = "email" name = "newinput" 
            placeholder = "[email protected]"/>
         <input type = "submit" value = "submit" />
      </form>

   </body>
</html>

To da następujący wynik -

Atrybut autofocus

Jest to prosty, jednoetapowy wzorzec, łatwo zaprogramowany w JavaScript w momencie ładowania dokumentu, automatycznie skupia się na jednym określonym polu formularza.

HTML5 wprowadził nowy atrybut o nazwie autofocus który zostałby użyty w następujący sposób -

<input type = "text" name = "search" autofocus/>

Ten atrybut jest obsługiwany tylko przez najnowsze wersje przeglądarek Mozilla, Safari i Chrome.

<!DOCTYPE HTML>

<html>
   <body>
   
      <form action = "/cgi-bin/html5.cgi" method = "get">
         Enter email : <input type = "text" name = "newinput" autofocus/>
         <p>Try to submit using Submit button</p>
         <input type = "submit" value = "submit" />
      </form>
      
   </body>
</html>

Wymagany atrybut

Teraz nie musisz mieć JavaScript do walidacji po stronie klienta, np. Puste pole tekstowe nigdy nie zostanie przesłane, ponieważ HTML5 wprowadził nowy atrybut o nazwie required który byłby używany w następujący sposób i nalegałby na posiadanie wartości -

<input type = "text" name = "search" required/>

Ten atrybut jest obsługiwany tylko przez najnowsze wersje przeglądarek Mozilla, Safari i Chrome.

<!DOCTYPE HTML>

<html>
   <body>
   
      <form action = "/cgi-bin/html5.cgi" method = "get">
         Enter email : <input type = "text" name = "newinput" required/>
         <p>Try to submit using Submit button</p>
         <input type = "submit" value = "submit" />
      </form>
      
   </body>
</html>

To da następujący wynik -