2009-09-13 26 views
114
<form id="target"> 
.... 
</form> 

Trả lời

221

Trong các phiên bản cũ hơn, bạn có thể sử dụng attr. Đối với jQuery 1.6, bạn nên sử dụng prop thay thế:

$("#target :input").prop("disabled", true); 

Để tắt tất cả các phần tử biểu mẫu bên trong 'mục tiêu'. Xem :input:

Khớp tất cả các yếu tố đầu vào, văn bản, chọn và nút.

Nếu bạn chỉ muốn <input> yếu tố:

$("#target input").prop("disabled", true); 
+20

Tính đến jQuery 1.6 bạn nên sử dụng '$ ("# mục tiêu: đầu vào"). Chống đỡ ("khuyết tật" , true); ' – danijel

+4

Ai đó nên chỉnh sửa câu trả lời bằng phương pháp được cập nhật - đây chỉ là thông tin không chính xác tại thời điểm này. –

+2

@BenClaar Điểm tốt. Đã sửa lỗi. – Potherca

34

Ví dụ ở trên là không chính xác về mặt kỹ thuật. Mỗi jQuery mới nhất, sử dụng phương thức prop() nên được sử dụng cho những thứ như bị vô hiệu hóa. See their API page.

Để tắt tất cả các phần tử biểu mẫu bên trong 'mục tiêu', 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 phần tử, hãy sử dụng phần tử này.

$("#target input").prop("disabled", true); 
11

Ngoài ra, cách súc tích 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 yếu tố hình thức trong một div hoặc hình thức cha mẹ.

$myForm.find(':input:not(:disabled)').prop('disabled',true) 
0

Câu trả lời dứt khoát (bao gồm thay đổi jQuery api tại phiên bản 1.6) đã được đưa ra bởi Gnarf

+0

Ông yêu cầu "vô hiệu hóa tất cả các đầu vào bên trong một biểu mẫu", không chỉ "vô hiệu hóa tất cả các đầu vào". – Bengala

5

Để 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 và nhỏ hơn

$("#form :input").attr('disabled','disabled'); 
4

bạn có thể thêm

<fieldset class="fieldset"> 

và sau đó bạn có thể gọi

$('.fieldset').prop('disabled', true); 
Các vấn đề liên quan