2010-09-24 36 views
5

làm thế nào để vô hiệu hóa/kích hoạt một nút cụ thể bằng jquery (theo tên)?làm thế nào để vô hiệu hóa/kích hoạt một nút bằng cách jquery

Nút không có ID, chỉ cần mã này:

<button onclick="$('ChangeAction').value='SaveAndDoOrder';" value="Bye" name="SaveAndDoOrder" type="submit"> 
     <i class="Icon ContinueIconTiny"></i> 
     <span class="SelectedItem">Bye</span> 
     </button> 
+2

Bạn nên thử tìm kiếm trước khi thực hiện một bài đăng mới, vài ngày qua cùng một câu hỏi đã được hỏi một vài lần. – RobertPitt

Trả lời

5

tôi sẽ khuyên bạn sử dụng ID thay cho tên, như:

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

này sẽ thêm disabled attribute nút mà bạn sau đó trình duyệt sẽ tự động tắt. Nếu bạn muốn sử dụng tên mà bạn có thể sử dụng nó như thế này:

$("button[name=myButton]").attr("disabled", true); 
+0

Câu hỏi được hỏi về cách tắt/bật nút theo tên không phải theo id. –

+0

mã này không hoạt động, hãy xem mã html cập nhật của tôi ở trên! – Tom

+0

Ah! Cảm ơn bạn đã nhận xét, cập nhật. –

4

Hãy thử điều này:

$("button[name=SaveAndDoOrder]").attr("disabled", "disabled"); 

Điều đó sẽ vô hiệu hóa một nút với một name thuộc tính bằng nameOfButton.

$("button[name=SaveAndDoOrder]").removeAttr("disabled"); 

Điều đó sẽ loại bỏ thuộc tính vô hiệu hóa khỏi cùng một nút.

+0

cảm ơn nhưng mã này không hoạt động, hãy xem mã html cập nhật của tôi ở trên! – Tom

+1

Thử câu trả lời đã sửa đổi của tôi :) –

0

Có ít nhất một câu trả lời đã được đưa ra sẽ hoạt động.

Điều tôi muốn nói là bạn được khuyên nên luôn có một ID trên các phần tử của mình và không chỉ dựa vào thuộc tính tên. Thuộc tính name thực sự chỉ được dùng làm điểm đánh dấu để đăng các mục biểu mẫu.

CSS và DOM Javascript đều được tối ưu hóa để xem ID. Bạn có thể làm điều đó theo tên, như trong các câu trả lời bạn đã được đưa ra, nhưng nó kém hiệu quả hơn nhiều - ngay cả khi bạn có thể làm điều đó trong cùng một lượng mã, trình duyệt sẽ phải làm nhiều việc hơn đằng sau hậu trường.

Ngoài ra một số kỹ thuật truy cập các phần tử theo tên không có sẵn trong tất cả các trình duyệt (phiên bản cũ của IE nói riêng có vấn đề với [thuộc tính] lớp trong CSS).

0

Đây là mã tôi sử dụng để vô hiệu hóa hoặc kích hoạt lại một điều khiển:

function handleControlDisplay(className, foundCount, checked) { 



    var button = jQuery(className); 



    if (foundCount > 0 && foundCount == checked) { 

     // enable 

     button.removeAttr("disabled"); 

    } 

    else { 

     // set the disabled attribute 

     button.attr("disabled", "true"); 

    }; 

} 
0

Tạo và sử dụng một plugin jQuery:

; (function($) { 
    $.fn.enable = function(b) { 
     return this.each(function() { 
      this.disabled = !b; 
     }); 
    }; 
})(jQuery); 

sử dụng nó như thế này

$(selector).enable(true|false); 
0

Giả sử nút là:

<asp:Button runat="server" ID="btn1" Text="button!"/> 

sau đó vô hiệu hóa sẽ được thực hiện như vậy:

$(document).ready (function() { 
    var a = $('#btn1'); 
    a.attr("disabled", function() { 
     return "disabled"; 
    });  
}); 

trình một cách hoàn hảo

0

tôi sử dụng jQuery's prop():

$('#generate').click(function() { 
    $(this).prop('disabled', true); 
} 

Để kích hoạt nút một lần nữa, làm:

$(this).prop('disabled', false); 

ở đâu đó trong y mã của chúng tôi.

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