2009-03-09 38 views

Trả lời

10

Một nơi nào đó ở phần đầu của kịch bản của bạn (có thể là về sự kiện click của nút), thiết lập thuộc tính tàn tật của nút là true:

$("#mybutton").attr("disabled", true); 

Sau đó, khi hoàn thành, loại bỏ thuộc tính:

$("#mybutton").removeAttr("disabled"); 

EDIT:

Nếu bạn muốn nhận được (hơi) ưa thích, hãy thay đổi văn bản của nút trong khi bạn đang thực hiện công việc. Nếu đó là nút hình ảnh, bạn có thể thay đổi src thành thông báo "vui lòng chờ" thân thiện. Dưới đây là một ví dụ về các phiên bản nút văn bản:

$("#mybutton").click(function() { 
    var origVal = $(this).attr("value"); 

    $(this).attr("value", "Please wait..."); 
    $(this).attr("disabled", true); 

    //Do your processing. 

    $(this).removeAttr("disabled"); 
    $(this).attr("value", origVal); 
}); 
33

Đây là một lĩnh vực mà tôi muốn mở rộng jQuery:

$.fn.disable = function() { 
    return this.each(function() { 
     if (typeof this.disabled != "undefined") this.disabled = true; 
    }); 
} 

$.fn.enable = function() { 
    return this.each(function() { 
     if (typeof this.disabled != "undefined") this.disabled = false; 
    }); 
} 

và sau đó bạn có thể làm:

$("#button").disable(); 
$("#button").enable(); 

tôi thấy mình vô hiệu hóa/cho phép điều khiển rất nhiều.

+0

Tôi thích giải pháp này. Bạn cũng có thể dễ dàng tăng cường chức năng để thay đổi văn bản. – Raithlin

3

Cảm ơn cletus cho chức năng của bạn. Tôi đã sử dụng chức năng của bạn và tạo của riêng tôi để chuyển đổi các phần tử bị vô hiệu hóa.

$.fn.toggleDisable = function() { 
    return this.each(function() { 
     if (typeof this.disabled != "undefined"){ 
       if(this.disabled){ 
        this.disabled = false; 
       }else{ 
        this.disabled = true; 
       } 
     } 
    }); 
} 
Các vấn đề liên quan