Zdarzenie onclick i wysyłanie form'a PHP

Zdarzenie onclick i wysyłanie form'a PHP
JU
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 lat
  • Postów:105
0

Cześć!
Czy jest możliwość aby na jednym przycisku button wykonać akcję submit w form i jednocześnie podpiąć pod ten przycisk działające zdarzenie "onclick"?
Testowy program jest tutaj: https://jsfiddle.net/0rhy1bo6/
Z input'a, w którym wpisuję dane po kliknięciu po stronie PHP wykonują się prawidłowo, natomiast pod żadnym pozorem zdarzenie "onclick" w umieszczonym form'ie nie zadziała.
Jeżeli nie da się tego zrobić to czy da się to w jakiś sposób obejść? Aby żądane dane otrzymał i jednocześnie PHP i JS?

Pozdrawiam

axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 15 godzin
  • Lokalizacja:Warszawa
  • Postów:2252
2

Da się. Poczytaj o e.preventDefault. Może nie do końca zrobisz dwie rzeczy na raz, lecz na 100% dasz rade najpierw wywołać zdarzenie z onclicka, a potem submitować forma.. Poza tym możesz zrobić inaczej - zrób buttona <button type="button" class="abc".. , na formie nadaj np <form class="myClass" i onclick podpinsz pod abc, a w środku submitujesz formularz z klasą myClass. Natomiast jeśli nie chcesz by po submicie przeniosło Cię na podaną w action forma stronę, to zainteresuj się ajaxem.

edytowany 1x, ostatnio: axelbest
DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:12 miesięcy
  • Postów:1788
1

@Jumpeq: twoje zdarzenie działa. Problem w tym, że zanim zdążysz zaobserwować działanie twojej funkcji Show to zostajesz przekierowany na inną stronę, ponieważ Twój przycisk wysyła formularz. Rozwiązaniem jest to, o czym napisał @axelbest, ale warto mieć na uwadze to, że te zdarzenia (submit, click) się nie wykluczają.

Małe sprostowanie. Twój kod nie działa, ale jego zapis jest prawidłowy. To znaczy można użyć za równo atrybutu onclick, jak i funkcji addEventListener. Problem u Ciebie jest taki, że jeżeli używasz onclick to funkcja musi być zdefiniowana przed tym kodem HTML. U Ciebie jest to później. Taki kod zadziała:
https://jsfiddle.net/0rhy1bo6/1/

edytowany 1x, ostatnio: Desu

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.