Przejdź do treści

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 logicznego novalidate.
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>

Komentarze

Zobacz więcej komentarzy

Facebook