2009-07-06 25 views
35

Cách kiểm tra xem một phần tử cụ thể có bị ẩn khỏi người dùng không? Trong mã của tôi, dưới những điều kiện nhất định, mã này sẽ được gọi là:JQuery: Kiểm tra xem một Thành phần có bị Ẩn từ người dùng

$("#VersionSelectField").hide('fast'); 

Vì vậy, tôi phải chắc chắn rằng nếu $("#VersionSelectField") là ẩn, sau đó tôi sẽ không cần phải xác nhận các giá trị bên trong nó khi tôi gửi biểu mẫu (Tôi sử dụng JQuery Validate library cho mục đích này).

Bất kỳ ý tưởng nào?

Trả lời

74
$("#VersionSelectField").is(':hidden'); 
+0

Điều đó sẽ chỉ kiểm tra xem đó có phải là đầu vào bị ẩn hay không. – Rob

+7

@Rob - Điều này thực sự sẽ kiểm tra xem nó có hiển thị với người dùng hay không. http://docs.jquery.com/Selectors/hidden –

+0

tôi không biết về bộ chọn đó. Cảm ơn vì đã mang nó đến với tôi. – Rob

0

Hãy thử $("#versionselectfield[display='none']").length > 0.

+0

Không chắc tại sao điều này lại bị bỏ phiếu. Bất cứ ai quan tâm để giải thích tại sao kiểm tra thuộc tính hiển thị là câu trả lời sai ở đây? – Rob

+1

Tôi không bỏ phiếu bạn xuống nhưng thẻ sẽ là style = "display: none", do đó bạn chọn không làm việc – redsquare

+0

Rob - bạn luôn có thể gắn cờ mọi thứ lên một mod nếu họ nghi ngờ bạn. – redsquare

8

này làm việc cho tôi:

$("#VersionSelectField").css("display") == "none"; 
0

Bạn có thể sử dụng callback của phương pháp() ẩn. Ví dụ:

$("#VersionSelectField").hide('fast', function() { 
    GlobalVersionSelectFieldHidden = true; 
}); 

Trên đây là phương pháp duy nhất để tận dụng điều đó, về cơ bản là gọi lại sẽ chỉ cháy khi hoạt hình xong (tức là, hoàn toàn ẩn). Tất nhiên gây ô nhiễm phạm vi biến toàn cầu là rất nghịch ngợm nhưng chỉ là một ví dụ nhanh.

Cách khác, kiểm tra xem hiển thị là "không" như đề xuất Đánh dấu cũng hoạt động, vì hiệu ứng JQ sẽ ẩn hoàn toàn mọi thứ bằng cách sử dụng thuộc tính css cụ thể đó.

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