• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Formularz - jeden input, wymagany "submit", a zwracany rezultat.

Object Storage Arubacloud
0 głosów
399 wizyt
pytanie zadane 15 września 2021 w JavaScript przez Wiciorny Ekspert (269,710 p.)

Witajcie,
Pytanie bardziej do osób, które swoje już zjadły w kwestii "frontendu i javascriptu", w czym sprawa? 
Otóż generalnie problem w aplikacji : w kilku miejscach, polegał na pewnym zdarzeniu - kiedy formularz  zawierający jeden input textowy był akceptowany przez "BUTTON" - dołączony do formularza (istotne jest typu "button"). 


Wszystkie operacje ajax-owe, związane z obsługą wysłania POST działały dobrze, problem pojawia się w sytuacji, kiedy użytkownik znajduje się na inpucie "textowym" do wypełnienia. 
Akcja - kliknięcia "ENTER" powoduje, akceptacje całego formularz - > jednocześnie z błędnym rezultatem który wyświetli sam "json response", nie ładując widoku. 
Od strony serwera, operacje są identyczne, jednak od razu widac, że ten input przyjmuje role submit- bo nie powinno byc możliwości akceptacji enterem mając na nim focus, wiem to można zablokować, ale chodzi mi o zachowanie formularza w takich przypadkach, dlaczego wymuszone jest "posiadanie subbmita" ? 
Oczywiście można zrobić też prevent, czy  zablokować poprzez keypres na enter, ale zastanawiam się ( szukałem w dokumentacji, nie znalazłem ), jak poradzić sobie z wymaganiem submita na formularzu.

Problem ten jest wynikiem sytuacji, że jeden input na formularzu traktowany jest  jako sumbit - nie zważając na występowanie buttonów, swojego typu.Jeśli nie ma "ogólnie elementu takiego na formularzu", dodanie drugiego inputa też typu textowego już nie wywoła tego problemu.
Z punktu widzenia bezpieczeństwa też uważam że tworzenie hidden inputa submit byłoby niedobrym pomysłem, 
Ktoś jest wstanie mi powiedzieć, dlaczego jest takie zachowanie biblioteczne, czy da się je obejść - mówię ogólnie od strony biblioteki, a nie własną implementacja np poprzez onClick -> false, czy zablokowanie entera?  

Dzięki za rozwinięcie dyskusji w tym temacie. 

1 odpowiedź

+3 głosów
odpowiedź 15 września 2021 przez Comandeer Guru (600,810 p.)

Bo formularze służą do tego, by zostać wysłanymi po uzupełnieniu. A jeśli nie ma jak go wysłać (nie ma przycisku), zostaje dodane zachowanie z tym Enterem. Jest to dokładnie opisane w specyfikacji HTML.

Dlatego dobrą praktyką jest przypięcie się do zdarzenia submit formularza i obsługa go z tego poziomu, nie zaś z poziomu kliku na przycisku. Osobiście pewnie bym ten button zmienił właśnie na submita i obsłużył całość w zdarzeniu submit.

komentarz 15 września 2021 przez Wiciorny Ekspert (269,710 p.)
tzn przycisk jest, ale jest on w projekcie zrobiony przez nas, jako osobny element htmlowy po prostu - i jest typu button stąd próba innego rozwiązania, bo jest to jsp- gdzie "Tag" jest tworzony przez "nas", więc generalnie sytuacja ma miejsce jak formularz ma 1 input wtedy.

Dzięki poczytam, rozmyślam czy aby nie kierować tutaj zmiany typu buttona na submit, albo zmiany operacji, właśnie jak piszesz- serdecznie dzieki

Podobne pytania

0 głosów
1 odpowiedź 140 wizyt
pytanie zadane 14 września 2020 w PHP przez Lort533 Nowicjusz (160 p.)
0 głosów
0 odpowiedzi 207 wizyt
0 głosów
4 odpowiedzi 273 wizyt
pytanie zadane 21 kwietnia 2018 w PHP przez wneku Nowicjusz (200 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...