To właśnie znalazłem Firebug w Firefoksie.
Czy to samo w innych przeglądarkach?
Jeśli tak, jaki jest tego powód?
form-submit
disabled-input
forms
http-post
o mój Boże
źródło
źródło
Odpowiedzi:
Tak, wszystkie przeglądarki nie powinny przesyłać wyłączonych danych wejściowych, ponieważ są one tylko do odczytu.
Więcej informacji (sekcja 17.12.1)
źródło
<input type="hidden">
element o tej samej nazwie / wartości, co wyłączone wejście.disabled
dane wejściowe nie będą przesyłać danych.Użyj
readonly
atrybutu:Źródło tutaj
źródło
readonly
działa, tylko upewnij się, że przekazujesz „name” attr do danych wejściowych.Możesz naśladować wyłączone trzy rzeczy:
HTML:
readonly
atrybut (aby wartość obecna w danych wejściowych mogła zostać wykorzystana przy wysyłaniu formularza. Użytkownik nie może również zmienić wartości wejściowej)CSS:
'pointer-events':'none'
(blokuje użytkownikowi kliknięcie wejścia)HTML:
tabindex="-1"
(blokuje użytkownikowi przejście do wejścia z klawiatury)źródło
Nie są przesyłane, ponieważ tak mówi specyfikacja W3C .
Innymi słowy, specyfikacja mówi, że wyłączone formanty są uważane za nieprawidłowe i nie należy ich przesyłać.
źródło
Disabled
kontrole nie mogą zakończyć się powodzeniem, a pomyślna kontrola jest „ważna” do przesłania. Z tego powodu wyłączone formanty nie przesyłają formularza.źródło
Istnieją dwa atrybuty, a mianowicie
readonly
idisabled
, które mogą stanowić dane tylko do odczytu. Ale jest między nimi niewielka różnica.readonly
Cecha sprawia, że tekst wejście wyłączone, a użytkownicy nie są w stanie zmienić go już.disabled
Atrybut nie tylko spowoduje wyłączenie tekstu wejściowego (niezmiennego), ale również nie będzie można go przesłać .Podejście jQuery (1):
Podejście jQuery (2):
Podejście JavaScript:
PS
disabled
ireadonly
są standardowymi atrybutami HTML.prop
wprowadzono zjQuery 1.6
.źródło
wybrane elementy sterujące są nadal klikalne, nawet na atrybutach tylko do odczytu
jeśli nadal chcesz wyłączyć kontrolę, ale chcesz opublikować jej wartość. Możesz rozważyć utworzenie ukrytego pola. o tej samej wartości, co twoja kontrola.
następnie utwórz jquery, po wybraniu zmiany
źródło