disabled vs. readonly
Atrybuty disabled
i readonly
mają podobne działanie – w rzeczywistości wyglądają tak samo z perspektywy użytkownika. W obu przypadkach to, co widzi użytkownik, to lekko „wyszarzone” pole, na które nie można kliknąć ani go edytować.
<form> <label for="disabled">Disabled</label><br> <input name="disabled" value="disabled" disabled> <br><br> <label for="readonly">Readonly</label><br> <input name="readonly" value="readonly" readonly></form>
Wyłączone
Readonly
Jednak są one różne i użycie niewłaściwego z nich może powodować problemy.
Jeśli pole jest disabled
, wartość pola nie jest wysyłana do serwera, gdy formularz jest przesyłany. Jeśli pole ma wartość readonly
, wartość jest wysyłana do serwera.
Protip: Jeśli istnieje jakiś powód, dla którego _naprawdę_ nie chcesz, aby wartość konkretnego pola była zawarta w żądaniu przesłania formularza, możesz chcieć przyjrzeć się obsłudze formularzy po stronie serwera. Możliwe jest, że złośliwy użytkownik może nadpisać atrybut
disabled
i wysłać dowolne dane z formularza. Dotyczy to właściwie każdego elementu – nigdy nie zapominaj o uwzględnieniu walidacji i sanityzacji formularzy po stronie serwera.Adam jest pisarzem technicznym, który specjalizuje się w dokumentacji deweloperskiej i samouczkach.