2011-11-02 26 views
12

Tôi đã được yêu cầu xác định tất cả các hộp văn bản chỉ đọc trong một trang Asp.Net và gán một kiểu cụ thể. Tôi khá chắc chắn tôi có thể lặp qua tất cả các yếu tố đầu vào để xem nếu họ là đầu vào được hộp văn bản với các thuộc tính chỉ đọc nhưng tôi chỉ biết có một lớp lót.Làm thế nào để sử dụng JQuery để tìm tất cả các hộp văn bản chỉ đọc trên một trang web

Mọi suy nghĩ?

Trả lời

5

Về mặt kỹ thuật, điều này sẽ là đủ để hạn chế đầu vào văn bản readonly:

$(':text[readonly]'); // equivalent to $('*:text[readonly]') 

Nhưng nếu đó là tôi, tôi muốn cụ thể hơn một chút và hãy đưa thẻ (jQuery khuyến cáo nó là tốt):

$('input:text[readonly]'); 

Và cũng theo jQuery documentation, nó là nhanh hơn trong các trình duyệt hiện đại sử dụng công cụ chọn loại thuộc tính thay vì :text:

$('input[type=text][readonly]'); 

Tôi sử dụng [readonly] thay vì [readonly=readonly] để chỉ kiểm tra sự hiện diện của thuộc tính chứ không phải giá trị của nó.

+1

đẹp, nhưng 'văn bản [chỉ đọc]' (và 'đầu vào: văn bản [chỉ đọc]' hoặc '*: văn bản [chỉ đọc]') từ chối hoạt động. (tuy nhiên '[type = text] [readonly]' hoạt động như mong đợi) – roselan

2

thử dưới đây

$('input[Type="text"]&[readonly="readonly"]') 
4
$.extend($.expr[':'],{ 
    readonly: function(obj) { 
     return $(obj).is('[readonly]'); 
    } 
}); 

$('input:text:readonly'); 

nó là cách tốt nhất mà tôi tìm thấy.

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