HTML5 - HTML
Nadpisanie atrybutów formularza <button formaction formenctype formmethod formnovalidate formtarget, input "submit, image" formaction formenctype formmethod formnovalidate formtarget>
W jaki sposób zbudować formularz HTML, który zostanie wysłany pod inny adres, w zależności który przycisk użytkownik kliknie?
- Przycisk wysłania formularza - akcja:
<button formaction="akcja">...</button>
- Przycisk wysłania formularza - typ kodowania:
<button formenctype="kodowanie">...</button>
- Przycisk wysłania formularza - metoda:
<button formmethod="metoda">...</button>
- Przycisk wysłania formularza - pominięcie walidacji:
<button formnovalidate>...</button>
- Przycisk wysłania formularza - cel:
<button formtarget="cel">...</button>
- Pole wysłania formularza - akcja:
<input type="typ" formaction="akcja">
- Pole wysłania formularza - typ kodowania:
<input type="typ" formenctype="kodowanie">
- Pole wysłania formularza - metoda:
<input type="typ" formmethod="metoda">
- Pole wysłania formularza - pominięcie walidacji:
<input type="typ" formnovalidate>
- Pole wysłania formularza - cel:
<input type="typ" formtarget="cel">
- akcja
- kodowanie
- metoda
- cel
- Oznaczają to samo, co analogiczne atrybuty znacznika FORM. Natomiast
formnovalidate
jest odpowiednikiem atrybutu logicznegonovalidate
. - typ
- Wartość submit lub image [zobacz Wysłanie formularza]
Czasami zachodzi potrzeba, aby ten sam formularz mógł być wysłany na różne adresy URL, w zależności od przycisku, który użytkownik kliknie. Dotychczas nie było to możliwe bez zastosowania dynamicznych skryptów JavaScript, ponieważ formularz był wysyłany zawsze na adres, określony wartością atrybutu action="..."
znacznika FORM. HTML5 wprowadza możliwość określenia oddzielnego adresu dla każdego przycisku wysłania formularza (<input type="submit">
, <input type="image">
, <button type="submit">
). Wystarczy przypisać do przycisku atrybut formaction="..."
i kiedy użytkownik w niego kliknie, formularz zostanie wysłany właśnie na ten adres URL.
Analogicznie można postąpić z pozostałymi atrybutami: formenctype="..."
dla przycisków odpowiada enctype="..."
całego formularza, formmethod="..."
- method="..."
, formnovalidate
- novalidate
, formtarget="..."
- target="..."
. [Zobacz specyfikację znacznika FORM].
Przykład <input "submit" formaction formmethod formenctype formnovalidate formtarget>
<form action="form.php" method="post"> <input type="submit" value="Wyślij na adres 1, w nowym oknie, pomiń walidację danych" formaction="button1.php" formmethod="get" formenctype="text/plain" formnovalidate formtarget="_blank"> <input type="submit" value="Wyślij na adres 2" formaction="button2.php"> <input type="submit" value="Wyślij na adres domyślny"> </form>