Jak mogę dodać readonly
do konkretnego <input>
? .attr('readonly')
nie działa.
javascript
jquery
Qiao
źródło
źródło
Odpowiedzi:
jQuery <1.9
jQuery 1.9+
Przeczytaj więcej o różnicy między rekwizytem a attr
źródło
Użyj $ .prop ()
źródło
$.prop()
: Prop ustawi atrybut readonly na pusty / pusty ciąg, więc jeśli masz CSS, który używa selektora atrybutów[readonly="readonly"]
, musisz zmienić to na[readonly]
(lub dołączyć oba).Readonly jest atrybutem zdefiniowanym w html, więc traktuj go jak jeden.
Musisz mieć coś takiego jak readonly = "readonly" w obiekcie, z którym pracujesz, jeśli nie chcesz, aby można go było edytować. A jeśli chcesz, aby można go było ponownie edytować, nie będziesz mieć czegoś takiego jak readonly = '' (to nie jest standard, jeśli dobrze zrozumiałem). Naprawdę musisz usunąć atrybut jako całość.
Jako taki, przy użyciu jquery dodawanie i usuwanie go ma sens.
Ustaw coś tylko do odczytu:
Usuń tylko do odczytu:
To była jedyna alternatywa, która naprawdę dla mnie zadziałała. Mam nadzieję, że to pomoże!
źródło
.attr('readonly', 'readonly')
powinien załatwić sprawę. Twój.attr('readonly')
zwraca tylko wartość, nie ustawione.źródło
.attr
Wartość powinna być tylko ciągiem lub numer, a nie logiczna, zgodnie z docs jQuery: api.jquery.com/attr/#attr2 Również HTML „boolean atrybuty” powinno być tylko pusty ciąg lub wartość atrybutu. Myślę, że rozwiązaniem jest.prop()
uniknięcie zamieszania.Myślę, że „wyłączone” wyklucza wysyłanie danych wejściowych przez POST
źródło
Możesz wyłączyć tylko do odczytu, używając .removeAttr;
źródło
Aby włączyć tylko do odczytu:
Do wyłączania tylko do odczytu
źródło
Użyj właściwości setAttribute. Zauważ w przykładzie, że jeśli wybierzesz 1, zastosuj atrybut tylko do odczytu w polu tekstowym, w przeciwnym razie usuń atrybut tylko do odczytu.
http://jsfiddle.net/baqxz7ym/2/
źródło
Dla wersji jQuery <1.9:
Dla wersji jQuery> = 1.9:
źródło