Câu trả lời:
Trong các phiên bản cũ hơn, bạn có thể sử dụng attr
. Kể từ jQuery 1.6, bạn nên sử dụng prop
thay thế:
$("#target :input").prop("disabled", true);
Để vô hiệu hóa tất cả các yếu tố hình thức bên trong 'mục tiêu'. Xem :input
:
Phù hợp với tất cả các yếu tố đầu vào, textarea, select và nút.
Nếu bạn chỉ muốn các <input>
yếu tố:
$("#target input").prop("disabled", true);
$(this).closest('form').find('input').prop('disabled', true);
. Không chắc chắn nếu bạn có thể hợp nhất điều đó tốt hơn, tôi vẫn còn khá mơ hồ về jQuery.
Trên ví dụ là về mặt kỹ thuật không chính xác. Trên mỗi jQuery mới nhất, nên sử dụng prop()
phương thức này cho những thứ như bị vô hiệu hóa. Xem trang API của họ.
Để vô hiệu hóa tất cả các thành phần của biểu mẫu bên trong 'đích', hãy sử dụng: bộ chọn đầu vào khớp với tất cả các yếu tố đầu vào, văn bản, chọn và nút.
$("#target :input").prop("disabled", true);
Nếu bạn chỉ muốn các yếu tố, sử dụng này.
$("#target input").prop("disabled", true);
Ngoài ra cách ngắn gọn hơn là sử dụng công cụ chọn của họ. Vì vậy, để vô hiệu hóa tất cả các thành phần biểu mẫu trong div hoặc biểu mẫu cha.
$myForm.find(':input:not(:disabled)').prop('disabled',true)
bạn có thể thêm
<fieldset class="fieldset">
và sau đó bạn có thể gọi
$('.fieldset').prop('disabled', true);
Để vô hiệu hóa tất cả các hình thức, dễ dàng như viết:
jQuery 1.6+
$("#form :input").prop("disabled", true);
jQuery 1.5 trở xuống
$("#form :input").attr('disabled','disabled');
Với một dòng này, bạn có thể vô hiệu hóa bất kỳ trường đầu vào nào trong một biểu mẫu
$('form *').prop('disabled', true);
Câu trả lời dứt khoát (bao gồm các thay đổi đối với api jQuery ở phiên bản 1.6) đã được Gnarf đưa ra
$("#target :input").prop("disabled", true);