Vô hiệu hóa và kích hoạt nút nhập html


250

Vì vậy, tôi có một nút như thế này:

<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>

Làm thế nào tôi có thể vô hiệu hóa và kích hoạt nó khi tôi muốn? Tôi đã thử disabled="disable"nhưng cho phép nó trở lại là một vấn đề. Tôi đã cố gắng đặt nó trở lại sai nhưng điều đó không cho phép.


Bạn có ý nghĩa gì cho phép nó trở lại? Khi bạn tắt nó, bạn không thể kích hoạt lại nó từ cùng một phương thức Me()mà tôi hy vọng bạn biết (vì nó bị vô hiệu hóa)
cjds

2
Tôi đang cố gắng làm là vô hiệu hóa và kích hoạt nút khi một số sự kiện nhất định xảy ra.
k.ken

Câu trả lời:


461

Sử dụng Javascript

  • Vô hiệu hóa nút html

    document.getElementById("Button").disabled = true;
  • Kích hoạt nút html

    document.getElementById("Button").disabled = false;
  • Demo tại đây


Sử dụng jQuery

Tất cả các phiên bản của jQuery trước 1.6

  • Vô hiệu hóa nút html

    $('#Button').attr('disabled','disabled');
  • Kích hoạt nút html

    $('#Button').removeAttr('disabled');
  • Demo tại đây

Tất cả các phiên bản của jQuery sau 1.6

  • Vô hiệu hóa nút html

    $('#Button').prop('disabled', true);
  • Kích hoạt nút html

    $('#Button').prop('disabled', false);
  • Demo tại đây

PS Cập nhật mã dựa trên các thay đổi jquery 1.6.1 . Như một gợi ý, luôn luôn sử dụng các tệp jquery mới nhất và prop()phương thức.


Tôi có cần các thuộc tính ở đó để làm việc này không? like disables = "vô hiệu hóa"
k.ken

Không, bên trong $(document).readybạn có thể gọi $('#Button').attr('disabled','disabled');. Điều này sẽ vô hiệu hóa nút trên tải trang. Và khi một số sự kiện nhất định xảy ra, bạn có thể gọi $('#Button').removeAttr('disabled');để kích hoạt lại ...
palaѕн

Làm thế nào để thêm phong cách màu xám nếu bị vô hiệu hóa?
Lôi Dương

1
@LeiYang bạn có thể thêm một số css như thế này
palaѕн

Chỉ cần lưu ý rằng đúng và sai là boolean, không phải chuỗi, như palash đã viết đúng
Marco

24

Vì bạn đang vô hiệu hóa nó ở vị trí đầu tiên, nên cách để kích hoạt nó là đặt thuộc tính của nó disabledfalse.

Để thay đổi thuộc tính của nó disabledtrong Javascript, bạn sử dụng:

var btn = document.getElementById("Button");
btn.disabled = false;

Và rõ ràng để vô hiệu hóa nó một lần nữa, bạn sẽ sử dụng truethay thế.

Vì bạn cũng đã gắn thẻ câu hỏi với jQuery, bạn có thể sử dụng .propphương thức này. Cái gì đó như:

var btn = $("#Button");
btn.prop("disabled", true);   // Or `false`

Đây là trong các phiên bản mới hơn của jQuery. Cách cũ hơn để làm điều này là thêm hoặc xóa một thuộc tính như vậy:

var btn = $("#Button");
btn.attr("disabled", "disabled");
// or
btn.removeAttr("disabled");

Sự hiện diện đơn thuần của thuộc disabledtính sẽ vô hiệu hóa phần tử, vì vậy bạn không thể đặt giá trị của nó là "false". Ngay cả những điều sau đây cũng nên vô hiệu hóa phần tử

<input type="button" value="Submit" disabled="" />

Bạn cần loại bỏ hoàn toàn thuộc tính hoặc đặt thuộc tính của nó.


Nếu tôi muốn nút này được kích hoạt ban đầu thì sau đó sẽ bị vô hiệu hóa; Tôi cũng đã thử enable = "true". Là kích hoạt từ khóa thích hợp ??
k.ken

2
@ k.ken Không, từ khóa bị "vô hiệu hóa". Nếu bạn muốn nút được bật ban đầu, đừng đặt thuộc tính disabledvào. Chỉ cần sử dụng <input type="button" value="Submit" />. Và khi thay đổi trạng thái, hãy sử dụng .prop("disabled", true);(hoặc false)
Ian

10

Bạn có thể làm điều này khá dễ dàng chỉ với JavaScript thẳng, không cần thư viện.

Kích hoạt một nút

document.getElementById("Button").disabled=false;

Vô hiệu hóa một nút

 document.getElementById("Button").disabled=true;

Không có thư viện bên ngoài cần thiết.



3
$(".btncancel").button({ disabled: true });

Ở đây 'btncattery' là tên lớp của nút.


0

Không có jQuery, vô hiệu hóa đầu vào sẽ đơn giản hơn

Button.disabled=1;


0
 <!--Button Disable Script-->
    <script type="text/javascript">
        function DisableButton() {
            document.getElementById("<%=btnSave.ClientID %>").disabled = true;
        }
        window.onbeforeunload = DisableButton;
    </script>
    <!--Button Disable Script-->

-2

Điều này chắc chắn sẽ làm việc.

Để vô hiệu hóa một nút

$('#btn_id').button('disable');

Để kích hoạt một nút

$('#btn_id').button('enable');

-6

Bám sát ...

Tại sao không chỉ cho phép nút xuất hiện khi đáp ứng một tiêu chí trên.

<?
if (whatever == something) {
    $display = '<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>';
    return $display;
}
?>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.