Onclick i formularze

Do wysyłania formularzy nie używaj onclick na polach <input>, ani <a>. Tylko stare babcie klikają myszą na przyciski, a reszta używa klawisza enter i może pominąć wszelkie tego typu wynalazki.

Submit()owa wpadka

Jeśli nie wiesz, czy dobrze używasz formularzy, to poszukaj “submit()” — jeśli masz go w kodzie, to źle używasz formularzy. Do sprawdzania poprawności fomularzy służy zdarzenie onsubmit elementu <form>. Wystarczy zwrócić false, żeby przerwać wysyłanie formularza.

<form onsubmit="return sprawdz_formularz(this)">

Wynik formularza w nowym oknie

Nie potrzeba Javascript. Wystarczy atrybut target elementu <form>, ale to i tak nienajlepszy pomysł.

Przyciski jak linki

Po pierwsze, przycisk wysyłający formularz nie powinien wyglądać jak link. Coś, co wygląda jak link, oznacza przejście do nowej strony bez żadnych efektów ubocznych. Przyciski są od wykonywania operacji.

Jeśli standardowy przycisk nie pasuje do wyglądu strony, to możesz zrobić własny za pomocą obrazka:

<input type="image" src="przycisk.png" alt="wyślij">

Jeśli już natrafiasz na bardzo rzadki przypadek, kiedy trzeba przemycić dane przy pozornie niewinnym przejściu do innej strony (i bynajmniej nie ma to być zastępstwem dla cookies), to “link” wysyłający formularz można zrobić poprzez nadanie stylów CSS:

<input type="submit" style="color:blue; background:transparent; border:0">

(Idealnym rozwiązaniem byłby element <button>, ale Internet Explorer go obsługuje tak żałośnie, że lepiej sobie darować).


To część tekstu o onclick.