2012-07-03 30 views
6

Tôi có một biểu mẫu có một số đầu vào bị vô hiệu hóa. Tôi muốn các đầu vào này được kích hoạt khi nhấp đúp. Thật không may, các sự kiện JS dường như không kích hoạt các đầu vào bị vô hiệu hóa.javascript cho phép nhập vào nhấp đúp vào

<input type="text" value="asdf" disabled="disabled" ondblclick="this.disabled=false;">​ 

Có cách nào xung quanh giới hạn này không?

Hoặc tôi có sắp xếp bất kỳ đầu vào bị ảnh hưởng nào trong một khoảng thời gian để tổ chức sự kiện không?

http://jsfiddle.net/vhktx/

+1

trùng lặp, bạn sẽ tìm thấy giải pháp ở đây: http : //stackoverflow.com/questions/3100319/jquery-event-on-a-disabled-input – valentinas

+1

Không phải ai cũng sử dụng jQuery. Ngoài ra, tôi đang tìm một giải pháp không bọc. – Umbrella

Trả lời

11

ondblclick không bị sa thải vào một yếu tố disabled, bạn nên đánh dấu nó như readonly:

<input type="text" value="asdf" readonly="true" ondblclick="this.readOnly='';"> 

http://jsfiddle.net/vhktx/4/

+0

Vâng, đây là giải pháp được ưu tiên. Cảm ơn bạn. – Umbrella

+0

Bạn cũng có thể thêm 'onblur =" this.readOnly = 'true'; "' để làm cho nó trở về trạng thái chỉ đọc của nó khi được bấm bên ngoài đầu vào. Và sử dụng thẻ CSS ': read-only' để tạo kiểu cho phần tử trong khi nó chỉ đọc và có thể chỉnh sửa được. – johnozbay

4

Bạn sẽ phải quấn phần tử trong một container kể từ sự kiện này sẽ không bắn vào yếu tố người tàn tật.

jsFiddle

<div ondblclick="document.getElementById('test').disabled=false;"> 
    <input type="text" id="test" value="asdf" disabled="disabled"></div> 
+0

Tôi đang tìm giải pháp không bọc. – Umbrella

+0

Không có giải pháp không bọc nếu bạn đang sử dụng trạng thái bị vô hiệu hóa gốc của một phần tử. – Gabe

+0

Không hoạt động trên Firefox Nightly 16 khi dblclicking trong đầu vào. Vui như thế nào nó hoạt động ngay cả trong IE mặc dù. –

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