2012-06-14 25 views
5

Tôi đang cố gắng để có được một số jQuery để vô hiệu hóa nút xác nhận trên biểu mẫu của tôi nếu danh sách thả xuống là một giá trị nhất định, nhưng nó dường như không hoạt động.Jquery để vô hiệu hóa một nút HTML không hoạt động

Tôi đã đọc rất nhiều bài đăng ở đây và đã thử nhiều cách khác nhau.

Đây là mã của tôi vào lúc này:

<script> 
     $(document).ready(function() { 
     // Handler for .ready() called. 
     $('#MoveToCompanyId').attr("disabled", true); 

     $('#DeleteAll').live("click", function() { 

      if ($(this).attr("value") == "True") { 
       $('#MoveToCompanyId').attr("disabled", true); 
      } else { 
       $('#MoveToCompanyId').attr("disabled", false); 
       $('#confirm').attr("disabled", true); 
       $('#MoveToCompanyId').change(function() { 
        if ($("#MoveToCompanyId option:selected").text() != "---Select Company---") { 
        $('#confirm').removeAttr("disabled"); 
        alert($("#MoveToCompanyId option:selected").text()); 
       } 
       else { 
        $('#confirm').attr("disabled", true); 
        alert("I should be disabled!"); 
       } 

      }); 
     } 
     }); 
    }); 

    </script> 

bất cứ ai có thể nhìn thấy bất kỳ vấn đề với nó?

Chỉ cần làm rõ, tôi biết nó được đưa vào các khối mã chính xác khi cảnh báo của tôi đang hoạt động. Nó chỉ là nút tắt mà không hoạt động.

Kind Regards,

Gareth

+0

Thử '.prop' thay vì' .attr'. –

+0

Thật không may này didnt làm việc hoặc. Tôi đang nhìn vào nút trong Firebug và nó dường như không bao giờ thêm thuộc tính bị vô hiệu hóa. –

+0

bạn có thể Fiddle mã của bạn? –

Trả lời

10

Bạn nên sử dụng

prop('disabled',true) 
prop('disabled',false) 

nếu bạn đang sử dụng jQuery 1.6 + thì bạn nên b e dùng prop.

Đọc về nhiều prop

Thuộc tính thường ảnh hưởng đến trạng thái năng động của một phần tử DOM mà không thay đổi các thuộc tính HTML serialized. Ví dụ bao gồm thuộc tính giá trị của các yếu tố đầu vào, thuộc tính bị vô hiệu của đầu vào và nút hoặc thuộc tính được chọn của hộp kiểm. Phương pháp .prop() nên được sử dụng để đặt tắt và được kiểm tra thay vì phương thức .attr(). Phương pháp .val() nên được sử dụng để nhận và đặt giá trị.

+0

cảm ơn cho lời khuyên đó wirey, đáng buồn này doesnt dường như không hoạt động hoặc. –

+0

Hiện tại, tính năng này hoạt động ngay bây giờ. Cảm ơn rất nhiều sự giúp đỡ của bạn –

+0

Rất vui được trợ giúp :) –

3

Bạn nên sử dụng

.attr('disabled', 'disabled') 

để vô hiệu hóa một điều khiển và

.removeAttr('disabled') 

để kích hoạt nó.

http://www.w3schools.com/tags/att_input_disabled.asp

+0

Cảm ơn Dave, đây là một trong những điều tôi đã cố gắng vô ích! –

+0

nhưng attr ("vô hiệu hóa", đúng) đã làm việc cho tôi! –

+0

@BehnamEsmaili chỉ định giá trị tùy ý cho 'bị vô hiệu hóa' sẽ vô hiệu hóa điều khiển nhưng cách duy nhất để bật lại tính năng này là xóa thuộc tính 'đã tắt' hoàn toàn – Dave

0

Hãy thử

attr('disabled', 'disabled') 

thay vì

attr("disabled", true); 
+0

attr ("bị tắt", đúng); không hoạt động trên tức là – MJK

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