2011-07-12 10 views
24

Jak zmienić wartość pola tekstowego HTML, które ma właściwość readonly przy użyciu jQuery?Jak zmienić wartość pola tekstowego tylko do odczytu przy użyciu jQuery?

+0

Dlaczego downvote? Wydaje się rozsądne, choć zwięzłe, pytanie. –

+0

Pytano już wiele razy wcześniej (co oznacza, że ​​nie wyszukał przed wysłaniem) i mogłem znaleźć odpowiedź w 10 sekund, googlując. – Phil

+16

@Phil To zabawne, ponieważ kiedy go szukałem, dostałem tę stronę. –

Odpowiedz

16

Czekaj, czy chcesz usunąć tylko do odczytu? Jeśli tak, to:

$('textbox').removeAttr('readonly').val('Changed Value'); 

jeśli nie:

$('textbox').val('Changed Value'); 
+1

W obecnych wersjach jQuery, może lepiej użyć '.prop ('readonly', false)' zamiast '.removeAttr ('readonly')' – Blazemonger

12
$('my-textbox').val('new value') 

Tylko do odczytu właściwość ma zastosowanie tylko dla użytkownika przeglądania strony, a nie JavaScript, który ma dostęp. to

3

Nie zapomnij napisać # Na przykład

$('#my-textbox').val('new value'); 

A może można przejść Następnie po tym wszystkim nie zapomnij spróbować użyć „” zamiast „”

+3

Co to powoduje dodanie do 3 już istniejących odpowiedzi? – Sumurai8

0

starszy post, ale tutaj jest trochę informacji.

jeśli u mieć wejście tylko do odczytu (z testu id), wystarczy ustawić val z jquery

$('#test').val(100); 

ale jeśli spojrzeć w kodzie źródłowym HTML w przeglądarce i wyszukiwania w niedawno aktualizację wartości wejściowej, u zobaczysz wartość pustą.

<input type="text" id="test" value /> 

tak, aby temu zapobiec, trzeba usunąć tylko do odczytu atribute przed ustawić wartość na wejściu, a następnie ustawić tylko do odczytu true ponownie.

$('#test').prop('readonly',false); 
$('#test').val(100); 
$('#test').prop('readonly',true); 

a wynik w html

<input type="text" id="test" value="100" /> 

temu zapobiec błąd, gdy u trzeba wysłać wartości formularza ...

Powiązane problemy