Tôi vừa nhận thấy một hành vi lạ trong IE7.IE - nút radio ẩn không được chọn khi nhãn tương ứng được nhấp
Tôi có nút radio có nhãn có liên quan như sau:
<input type="radio" name="filter" id="filter_1" value="Activities" checked="checked" />
<label for="filter_1">Activities</label>
<input type="radio" name="filter" id="filter_2" value="Services" />
<label for="filter_2">Services</label>
Các nút radio được giấu qua css với display: none hoặc visibility: hidden (đừng hỏi)
Vấn đề là - khi tôi nhấp vào nhãn trong IE7 (chưa xem xét các phiên bản IE khác), nút radio liên quan không thực sự được kiểm tra. Tôi xác nhận điều này với jquery - sự kiện bấm nhãn được kích hoạt, nhưng sự kiện bấm nút radio thì không. Một biểu mẫu đăng bài cũng xác nhận rằng nút radio đã chọn không thay đổi.
Điều này hoạt động chính xác trong firefox và cũng hoạt động chính xác nếu tôi xóa CSS ẩn các nút radio.
Đây có phải là lỗi IE hoặc tôi thiếu gì đó không?
+1 Có, điều đó sẽ hiệu quả. Tôi tò mò hơn nếu đây là lỗi đã biết trong IE. – ScottE
Tôi không nghĩ rằng đó là một lỗi đã biết, nhiều như hành vi không được xác định rõ ràng trong thông số kỹ thuật. Nhìn vào bài viết MSDN được liên kết đến từ bài đăng tôi đã liên kết ở trên, có vẻ như hành vi này hoàn toàn có chủ ý trên một phần của IE. Nếu một cái gì đó được hiển thị: không có thì nó có hiệu quả không phải là một phần của tài liệu. Do đó, MS đã chọn bỏ qua những yếu tố này, Mozilla đã chọn không, nó không giống như có một cách rõ ràng đúng hay sai để làm điều đó. – robertc
Nó không phải là rất mát mẻ khi CSS của một nhà thiết kế có thể phá vỡ dữ liệu đi vào trình xử lý biểu mẫu của nhà phát triển bằng cách không truyền theo một đoạn dữ liệu. Hành vi này có mùi sai. Cảm ơn bạn đã giải quyết! – Koobz