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

Input Hidden a Text - różnica w zachowaniu

Object Storage Arubacloud
0 głosów
253 wizyt
pytanie zadane 25 września 2019 w HTML i CSS przez Bartłomiej Bolesta Obywatel (1,630 p.)
Aby sobie ułatwić wysłanie formularza, którego elementy byłyby bardzo rozrzucone po stronie zrobiłem pola input hidden w formie w które wstawiam te same wartości, którymi manipuluje użytkownik w polach input text.

Póki dla testów miałem hiddeny jako text wszystko było ok. Ale gdy zmieniłem na hiddeny zauważyłem dziwną rzecz.

W momencie, gdy cofam stronę po wysłaniu formularza dane w inputach text pozostają takie jakie były wpisane przez użytkownika, zaś w inputach hidden się zerują (wracają do postaci value = "").

Przez to użytkownik widzi wpisane uprzednio wartości, ale gdyby chcieć znów kliknąć przesłanie z takimi samymi danymi (jak najbardziej jest to przeze mnie dopuszczalne w tym wypadku) to wywali błąd, że dane pola nie zostały uzupełnione i należy to zrobić.

Co więcej patrząc do zakładki "elements" przeglądarki, typ hidden podczas wstawiania wartości, widać, że się zmienia i w tej zakładce wyświetla się jako np. value="1", ale typ text się nie zmienia wyświetla się jedynie jako value.

Skąd tak różnica w obu typach?

1 odpowiedź

+1 głos
odpowiedź 25 września 2019 przez Comandeer Guru (601,450 p.)
wybrane 25 września 2019 przez Bartłomiej Bolesta
 
Najlepsza

Co do drugiego, to ogólnie atrybut [value] pól formularza nie ma nic wspólnego z własnością value tych pól w DOM. [value] to tak naprawdę domyślna wartość tego pola (czemu odpowiada defaultValue w DOM) i w czasie aktualizacji wartości pola się nie zmienia. Niemniej dla kilku pól, w tym [type=hidden], zmiana jednego, pociąga za sobą zmianę drugiego, zgodnie ze szczegółami w specyfikacji HTML.

Co do pierwszego: ukryte pola nie są interaktywne i użytkownik nie może w nie nic wpisać, zatem ich wartość zawsze musi zostać ustawiona przez skrypt. Dlatego też nie ma sensu zapisywać zawartości tych pól. Jeśli strona zostanie wczytana na nowo, po prostu trzeba na nowo ustawić wartości takich pól.

Inna rzecz, że mam wrażenie, że mocno przekombinowałeś. Czemu nie zrobiłeś jednego, dużego formularza na całą stronę? Można też zastosować atrybut [form].

komentarz 25 września 2019 przez Bartłomiej Bolesta Obywatel (1,630 p.)

Czemu nie zrobiłeś jednego, dużego formularza na całą stronę?

Ponieważ raz, jest też dużo innych przycisków na stronie co by pociągało potrzebę ciągłego preventowania, a dwa mam to wszystko zebrane w kupie i nie muszę biegać po nie tylko dość obszernym kodzie strony, ale i dość obszernym kodzie robionym w plikach php, których kod lub wyniki dopiero wstawiam w DOM.

Nie powiem. Efekt po cofnięciu strony mocno upraszczał sprawę. Teraz będę musiał pokombinować na nowo, jeśli chcę zostawić taką możliwość. Dzięki za wyjaśnienie.

Podobne pytania

+1 głos
1 odpowiedź 227 wizyt
pytanie zadane 19 czerwca 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
0 głosów
2 odpowiedzi 360 wizyt
pytanie zadane 11 kwietnia 2021 w HTML i CSS przez Nearr Obywatel (1,890 p.)
0 głosów
1 odpowiedź 582 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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!

...