Mam następujące dane wejściowe:
<input id="fieldName" name="fieldName" type="text" class="text_box" value="Firstname"/>
Jak mogę użyć jQuery, aby uczynić ten element wejściem tylko do odczytu bez zmiany elementu lub jego wartości?
Obecnie z jQuery 1.6.1 lub nowszym zaleca się używanie .prop () podczas ustawiania atrybutów / właściwości logicznych.
$("#fieldName").prop("readonly", true);
po prostu dodaj następujący atrybut
// for disabled i.e. cannot highlight value or change
disabled="disabled"
// for readonly i.e. can highlight value but not change
readonly="readonly"
jQuery dokonać zmiany elementu (zmiennika disabled
dla readonly
poniżej do ustawiania readonly
atrybutu).
$('#fieldName').attr("disabled","disabled")
lub
$('#fieldName').attr("disabled", true)
UWAGA: Począwszy od jQuery 1.6, zaleca się używanie .prop()
zamiast .attr()
. Powyższy kod będzie działać dokładnie tak samo z wyjątkiem substytut .attr()
dla .prop()
.
Aby wprowadzić dane wejściowe tylko do odczytu, użyj:
aby uczynić go do odczytu / zapisu użyj:
dodanie
disabled
atrybutu nie spowoduje wysłania wartości pocztą.źródło
Możesz to zrobić, po prostu zaznaczając go
disabled
lubenabled
. Możesz użyć tego kodu, aby to zrobić:lub
$ ('# fieldName'). prop ('readonly', true);
$ ('# fieldName'). prop ('readonly', false);
--- Lepiej jest użyć właściwości zamiast atr.
źródło
Użyj tego przykładu, aby pole tekstowe było tylko do odczytu lub nie.
źródło
Istnieją dwa atrybuty, a mianowicie
readonly
idisabled
, które mogą stanowić dane wejściowe 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 (niezmienność), ale także uniemożliwi jego przesłanie .Podejście jQuery (1):
Podejście jQuery (2):
Podejście JavaScript:
PS
prop
wprowadzony zjQuery 1.6
.źródło
Dany -
to działa - (jquery 1.7.1)
testowane z readonly i readOnly - oba działały.
źródło
Może użyć atribute disabled:
Lub po prostu użyj tagu etykiety:;)
źródło
źródło
Być może warto też to dodać
może być używany jako opcja przełączania.
źródło
readonly
atrybut do elementu, niezależnie od przekazanej wartości. Więc twój przykład zakończyłby się uczynieniem pola wejściowego tylko do odczytu, pomimo pozornego ustawienia wartości na fałsz.W JQuery 1.12.1 moja aplikacja używa kodu:
$('"#raisepay_id"')[0].readOnly=true;
$('"#raisepay_id"')[0].readOnly=false;
i to działa.
źródło
SetReadOnly (stan) jest bardzo przydatny w przypadku formularzy, możemy ustawić dowolne pole na setReadOnly (stan) bezpośrednio lub z różnych warunków, ale wolę używać readOnly do ustawiania krycia dla selektora, w przeciwnym razie atrybut attr = 'disabled' również działał jak ta sama droga.
readOnly przykłady:
lub poprzez różne przepisy, takie jak
tutaj używamy wartości logicznej stanu do ustawiania i usuwania atrybutu tylko do odczytu z wejścia w zależności od kliknięcia pola wyboru.
źródło
W html
w bootstrapie
JQuery to zmieniająca się biblioteka i czasami wprowadzają regularne ulepszenia. .attr () służy do pobierania atrybutów ze znaczników HTML i chociaż jest doskonale funkcjonalny .prop () został dodany później, aby był bardziej semantyczny i działa lepiej z atrybutami bez wartości, takimi jak „zaznaczone” i „wybrane”.
Zaleca się, aby w przypadku korzystania z późniejszej wersji JQuery używać .prop () zawsze, gdy jest to możliwe.
źródło