To właśnie znalazłem Firebug w Firefoksie.
Czy to samo w innych przeglądarkach?
Jeśli tak, jaki jest tego powód?
To właśnie znalazłem Firebug w Firefoksie.
Czy to samo w innych przeglądarkach?
Jeśli tak, jaki jest tego powód?
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)
Definicje atrybutów
disabled [CI] Po ustawieniu dla kontrolki formularza ten atrybut logiczny wyłącza kontrolę dla wprowadzania danych przez użytkownika. Po ustawieniu wyłączony atrybut ma następujące działanie na element:
- Wyłączone elementy sterujące nie są aktywowane.
- Wyłączone elementy sterujące są pomijane w nawigacji po kartach.
- Wyłączone elementy sterujące nie mogą zakończyć się powodzeniem.
Następujące elementy obsługują wyłączony atrybut: BUTTON, INPUT, OPTGROUP, OPTION, SELECT i TEXTAREA.
Ten atrybut jest dziedziczony, ale deklaracje lokalne zastępują odziedziczoną wartość.
Sposób renderowania wyłączonych elementów zależy od klienta użytkownika. Na przykład niektóre aplikacje użytkownika „wyszarzają” wyłączone elementy menu, etykiety przycisków itp.
W tym przykładzie element INPUT jest wyłączony. Dlatego nie może otrzymać danych wejściowych od użytkownika, a jego wartość nie zostanie przesłana z formularzem.
<INPUT disabled name="fred" value="stone">
Uwaga. Jedynym sposobem na dynamiczną modyfikację wartości wyłączonego atrybutu jest skrypt.
<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:
<input type="text" readonly />
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)
Nie są przesyłane, ponieważ tak mówi specyfikacja W3C .
17.13.2 Skuteczne kontrole
Pomyślna kontrola jest „ważna” do złożenia. [fantastyczna okazja]
- Wyłączone elementy sterujące nie mogą zakończyć się powodzeniem.
Innymi słowy, specyfikacja mówi, że wyłączone formanty są uważane za nieprawidłowe i nie należy ich przesyłać.
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.
Istnieją dwa atrybuty, a mianowicie readonly
i disabled
, które mogą stanowić dane tylko do odczytu. Ale jest między nimi niewielka różnica.
<input type="text" readonly />
<input type="text" disabled />
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):
$("#inputID").prop("readonly", true);
$("#inputID").prop("disabled", true);
Podejście jQuery (2):
$("#inputID").attr("readonly","readonly");
$("#inputID").attr("disabled", "disabled");
Podejście JavaScript:
document.getElementById("inputID").readOnly = true;
document.getElementById("inputID").disabled = true;
PS disabled
i readonly
są standardowymi atrybutami HTML. prop
wprowadzono z jQuery 1.6
.
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
$('#your_select_id').change(function () {
$('#your_hidden_selectid').val($('#your_select_id').val());
});