d4ng
10.08.2016, 15:43:54
cześć mam prosty formularz logowania (2 inputy login hasło + button typu submit) z walidacją w js. Problem w tym że tylko na firefoxie formularz wyśle sie po drugim kliknięciu w button albo gdy dany input straci focus (np klikne obok formularza) a nastepnie klikne w button (wtedy za pierwszym). Czy ktoś ma jakiś pomysł co to może być? Niby js jest dobry (niestety nie mam do niego dostępu żeby go pokazać).
Comandeer
10.08.2016, 15:47:17
No to jak nie masz dostępu do kodu, to tak średnio jest jak pomóc… Na razie to jedynie SOA#1 – u mnie działa.
d4ng
10.08.2016, 16:13:00
no niestety problem jest na środowisku stg (przedprodukcyjne) do którego nie mam wiazdu i wrzucili mi taska żebym wróżył z fusów... ja się z czymś taki nie spotkałem i moge się załoyć że zrobili babola w js no ale...
to co sugerujesz odbić SOA#Z ?
Comandeer
10.08.2016, 16:35:54
Na pewno jest babol w JS. Strzelam, że walidacja odpala się wyłącznie przy blur pola, stąd czasami trzeba dwa razy kliknąć (pierwszy klik zbluruje pole a drugi – wyśle formularz).
Pyton_000
11.08.2016, 07:28:37
Gdyby tak było to kliknięcie obok formularza skutkowałoby dokładnie takim samym zachowaniem (2x kliknięcie).
Zobacz sobie jakie eventy są przypięte do buttona (by Developers Tools).
JS przecież możesz sobie ze źródła pobrać więc nie widzę problemu
Comandeer
11.08.2016, 14:36:23
Cytat
Gdyby tak było to kliknięcie obok formularza skutkowałoby dokładnie takim samym zachowaniem (2x kliknięcie).
Nie. Klik na przycisku wysyła formularz, ale tylko wtedy, gdy wszystkie pola są sprawdzone i zwalidowane. A walidacja pola zachodzi dopiero przy
blur.
Chociaż
blur powinien się wywołać przed
click, hmmm… Dałoby się to odtworzyć przy użyciu [tt]mousedown[/tt]:
https://jsfiddle.net/m817fhfv/1/
JoShiMa
10.12.2017, 23:36:10
Nie chciałabym wyciągać trupa z szafy, ale mnie to zastanowiło (szukam informacji i wpadłam na ten wątek). Czym właściwie różni się event blur od focusout.
SmokAnalog
11.12.2017, 00:04:17
Różnica jest taka, że blur jest wywoływane tylko wtedy, gdy ten określony element traci focus. focusout za to obsługuje event bubbling, czyli jak masz na przykład <input> wewnątrz <form> i dasz focusout na <form>, to zostanie wywołane przy odznaczeniu pola tekstowego.
Comandeer
11.12.2017, 15:04:36
Niemniej można chwycić
blur w fazie przechwytywania →
https://jsfiddle.net/Comandeer/tefx83ar/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.