2015-05-27 15 views
5

Tôi có một cái nhìn MVC với một số nút trên nó (mỗi mục trong một giỏ làm cho 2 nút) ...Disable tất cả các nút trên trang

<button class="pbbg" id="ProductMinus_161637" type="button">-</button> 
<button class="pbbg" id="ProductPlus_161637" type="button">+</button> 

(cả hai đều có một sự kiện onclick)

Khi nhấn một trong hai nút này, tôi muốn tắt tất cả các nút cho mỗi sản phẩm cho đến khi giỏ đã hoàn tất cập nhật.

Sự kiện nhấp gọi một hàm JavaScript để thực hiện cuộc gọi Ajax. Sau post này điều đầu tiên tôi cố gắng làm là vô hiệu hóa tất cả các nút .....

$("input[type=button]").attr("disabled", "disabled"); 

Sau đó, sau khi trở về cuộc gọi Ajax kích hoạt lại chúng ....

$("input[type=button]").removeAttr("disabled"); 

Tôi nhận được không lỗi nhưng các nút không bị tắt.

Tôi đang gặp sự cố ở đâu?

+0

Hãy thử sử dụng lệnh prop $ ("input [type = button]"). Prop ("disabled", true); – Adil

+5

Các yếu tố của bạn không phải là 'đầu vào' (chúng là các nút!) - thay đổi html của bạn thành' '(và sử dụng' .prop ('disabled', true) ') –

+0

@ StephenMuecke Doh! Cảm ơn tôi đã không phát hiện ra điều đó. Lấy html trực tiếp từ nhà thiết kế. – Fred

Trả lời

13

Bộ chọn của bạn sai. thay vì chọn input.., bạn nên sử dụng :button bộ chọn giả.

Bạn có thể sử dụng bộ chọn :button để chọn tất cả các nút.

$(':button').prop('disabled', true); // Disable all the buttons 

Để kích hoạt tất cả các nút:

$(':button').prop('disabled', false); // Enable all the button 

EDIT

Nếu bạn muốn vô hiệu hóa chỉ các nút có id bắt đầu với Product sử dụng:

$('button[id^="Product"]') 
+0

Điểm của việc sử dụng nút chọn giả «: nút' so với nút' "và sử dụng' prop' trên 'attr' là gì? – jered

+3

': nút' sẽ chọn tất cả nút' ,', đầu vào [loại = "nút"] 'và' đầu vào [loại = "gửi"] ' – Tushar

+2

@JCD http://stackoverflow.com/a/16051519/2025923 'prop so với attr' – Tushar

1

Bạn cần sử dụng bộ chọn button. Hãy thử prop như thế này

$('button').prop('disabled', true); 
3

lẽ bởi vì bạn không sử dụngThẻ, bạn đang sử dụng thẻ button thẳng. Thay vào đó, hãy thử $("button").attr("disabled", "disable").

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