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
formnovalidatejest 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>
Przeglądarki
![]() Chrome | ![]() Firefox | ![]() Edge | ![]() Opera | ![]() Safari | |
|---|---|---|---|---|---|
<button formaction> | 9 2011-02-03 | 4 2011-03-22 | 12 2015-07-29 | 15 2013-07-02 | 5.1 2011-07-20 |
<button formenctype> | 9 2011-02-03 | 4 2011-03-22 | 12 2015-07-29 | 10.6 2010-07-01 | 5.1 2011-07-20 |
<button formmethod> | 9 2011-02-03 | 4 2011-03-22 | 12 2015-07-29 | 15 2013-07-02 | 5.1 2011-07-20 |
<button formnovalidate> | 9 2011-02-03 | 4 2011-03-22 | 12 2015-07-29 | 15 2013-07-02 | 5.1 2011-07-20 |
<button formtarget> | 9 2011-02-03 | 4 2011-03-22 | 12 2015-07-29 | 15 2013-07-02 | 5.1 2011-07-20 |
<input formaction> | 9 2011-02-03 | 4 2011-03-22 | 12 2015-07-29 | ≤12.1 2012-11-20 | 5 2010-06-07 |
<input formenctype> | 9 2011-02-03 | 4 2011-03-22 | 12 2015-07-29 | ≤12.1 2012-11-20 | 5 2010-06-07 |
<input formmethod> | 9 2011-02-03 | 4 2011-03-22 | 12 2015-07-29 | ≤12.1 2012-11-20 | 5 2010-06-07 |
<input formnovalidate> | 4 2010-01-25 | 4 2011-03-22 | 12 2015-07-29 | ≤12.1 2012-11-20 | 5 2010-06-07 |
<input formtarget> | 9 2011-02-03 | 4 2011-03-22 | 12 2015-07-29 | ≤12.1 2012-11-20 | 5 2010-06-07 |







