2012-07-30 28 views
45

Làm cách nào để xóa thuộc tính "bị vô hiệu hóa" thành đầu vào html bằng javascript?javascript xóa thuộc tính "bị vô hiệu hóa" thành đầu vào html

<input id=edit disabled> 

at onclick Tôi muốn thẻ nhập của tôi không bao gồm thuộc tính "bị vô hiệu hóa".

+0

bản sao có thể có của [Làm cách nào để vô hiệu hóa nút ubmit khi hộp kiểm được bỏ chọn?] (http://stackoverflow.com/questions/5458531/how-do-i-disable-a-submit-button-when-checkbox-is-uncheck) trùng lặp vì câu hỏi đó giải thích cách chuyển đổi, do đó làm thế nào để kích hoạt * và * vô hiệu hóa như được yêu cầu ở đây. –

Trả lời

108

Set của phần tử disabled tài sản để sai:

document.getElementById('my-input-id').disabled = false; 

Nếu bạn đang sử dụng jQuery, tương đương sẽ là:

$('#my-input-id').prop('disabled', false); 

Đối với một số lĩnh vực đầu vào, bạn có thể truy cập chúng bằng lớp thay vì :

var inputs = document.getElementsByClassName('my-input-class'); 
for(var i = 0; i < inputs.length; i++) { 
    inputs[i].disabled = false; 
} 

Nơi có thể thay thế document bằng một ví dụ, để tìm các phần tử bên trong biểu mẫu đó. Bạn cũng có thể sử dụng getElementsByTagName('input') để nhận tất cả các yếu tố đầu vào. Trong lần lặp lại for, bạn phải kiểm tra xem inputs[i].type == 'text'.

+1

có nó hoạt động, nhưng tôi đã có rất nhiều đầu vào cần phải làm điều tương tự. Có lối tắt nào cho việc này không? này là posible ('id1', 'id2', 'id3')? –

+0

@IvorySantos: được rồi, hãy xem bản chỉnh sửa của tôi. –

+1

vâng, nó hoạt động! cảm ơn. bằng cách có lỗi đánh máy tại geElementsBy. Tôi nghĩ rằng nó sẽ không hoạt động :) –

2

Để đặt disabled false bằng cách sử dụng name tài sản của các đầu vào:

document.myForm.myInputName.disabled = false; 
13

Tại sao không chỉ loại bỏ thuộc tính đó?

  1. JS vani: elem.removeAttribute('disabled')
  2. jQuery: elem.removeAttr('disabled')
+1

'jQuery (" # thành công "). RemoveAttr (" vô hiệu hóa ");' - điều này làm việc cho tôi, cảm ơn! – aftamat4ik

0
method 1 <input type="text" onclick="this.disabled=false;" disabled> 
<hr> 
method 2 <input type="text" onclick="this.removeAttribute('disabled');" disabled> 
<hr> 
method 3 <input type="text" onclick="this.removeAttribute('readonly');" readonly> 

mã của câu trả lời trước dường như không làm việc trong chế độ inline, nhưng có một cách giải quyết: Phương pháp 3.

xem demo https://jsfiddle.net/eliz82/xqzccdfg/

+0

Hai người này không làm việc cho tôi. '' phương thức 1


phương pháp 2 '' –

+1

Bạn đã bỏ phiếu này xuống chỉ vì bạn không biết cách đọc câu trả lời đúng cách? Phương pháp 1 là từ phản hồi David Hedlund, phương pháp 2 là từ phản ứng Dragos Rusu. Khi một phần tử bị vô hiệu hóa, "onclick" trên phần tử cụ thể đó sẽ không hoạt động nữa trong chế độ nội tuyến (tôi đã không kiểm tra chế độ js bên ngoài). Cách duy nhất là để mô phỏng "vô hiệu hóa" là một cách giải quyết ít bằng cách sử dụng thuộc tính chỉ đọc và một số css. HOẶC tạo thành phần tử "onclick" bên ngoài như nút cho phép nhập bằng phương thức 1 và 2 (tất nhiên sẽ hoạt động). – eliz82

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