2011-07-12 32 views
24

Làm cách nào để thay đổi giá trị của một hộp văn bản HTML có thuộc tính chỉ đọc bằng jQuery?Làm thế nào để thay đổi giá trị của một hộp văn bản chỉ đọc bằng jQuery?

+0

Tại sao downvote? Có vẻ như một câu hỏi hợp lý, nếu có. –

+0

Đã được hỏi nhiều lần trước đây (có nghĩa là anh ấy không tìm kiếm trước khi đăng bài) và tôi có thể tìm ra câu trả lời trong 10 giây bằng cách googling nó. – Phil

+16

@Phil Thật buồn cười vì khi tôi googled cho nó, tôi nhận được trang này. –

Trả lời

16

Chờ, bạn có muốn xóa chỉ đọc không? Nếu vậy:

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

nếu không muốn nói:

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

Trong các phiên bản hiện tại của jQuery, tốt hơn nên sử dụng '.prop ('readonly', false)' thay vì '.removeAttr ('readonly')' – Blazemonger

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

Các đọc tài sản duy nhất chỉ áp dụng cho người dùng xem trang, không phải là JavaScript mà truy cập. nó

3

Đừng quên để viết # Ví dụ

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

Và có lẽ bạn có thể đi qua Sau đó, sau khi tất cả mọi thứ đừng quên thử sử dụng "" thay vì ''

+3

Điều này làm gì thêm vào 3 câu trả lời đã tồn tại? – Sumurai8

0

bài cũ hơn nhưng đây là một số thông tin.

nếu u có một đầu vào chỉ đọc (với kiểm tra id), bạn chỉ cần thiết lập các val với jquery

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

nhưng nếu bạn nhìn vào mã nguồn html trong trình duyệt của bạn và tìm kiếm trong thời gian gần đây của bạn cập nhật giá trị đầu vào, u sẽ thấy giá trị rỗng.

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

như vậy, để ngăn chặn điều này, bạn phải gỡ bỏ readonly atribute trước khi thiết lập các giá trị cho các đầu vào và sau đó đặt readonly là true nữa.

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

và kết quả trong html

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

này ngăn chặn lỗi khi u cần phải gửi các giá trị hình thức ...

Các vấn đề liên quan