Po prostu zauważyłem dziwne zachowanie w IE7.IE - ukryty przycisk radiowy nie sprawdzany po kliknięciu odpowiedniej etykiety
mam przyciski radiowe z powiązanymi etykietami w następujący sposób:
<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>
Radio Przycisk jest ukryty za pośrednictwem css z display: none lub visibility: hidden (nie pytajcie)
Problem polega na tym - kiedy kliknę etykietę w IE7 (nie obejrzałem jeszcze innych wersji IE), skojarzony z nim przycisk radiowy nie jest faktycznie sprawdzany. Potwierdziłem to za pomocą jquery - zdarzenie click zdarzenia label jest uruchomione, ale zdarzenie click radio button nie jest. Formularz pocztowy potwierdza również, że zaznaczony przycisk radiowy się nie zmienia.
Działa to poprawnie w firefoxie, a także działa poprawnie, jeśli usunę CSS, który ukrywa przyciski radiowe.
Czy to jest błąd IE, czy też coś mi brakuje?
+1 Tak, to zadziała. Jestem bardziej ciekawy, czy jest to znany błąd w IE. – ScottE
Nie sądzę, że jest to znany błąd, ale zachowanie, które nie jest jasno określone w specyfikacji. Patrząc na artykuł MSDN, który jest powiązany z postu, który łączyłem z powyższym, wydaje się, że takie zachowanie jest całkowicie celowe ze strony IE. Jeśli coś jest wyświetlane: żadne, to faktycznie nie jest częścią dokumentu. Państwa członkowskie postanowiły zignorować te elementy, a Mozilla postanowiła tego nie robić, nie jest tak, że jest to oczywiście słuszne lub błędne. – robertc
To nie jest zbyt fajne, gdy CSS projektanta może złamać dane wchodzące w obsługę formularza dewelopera, nie przekazując dalej danych. To zachowanie źle pachnie. Dzięki za obejście problemu! – Koobz