Używam niezłej metody tylko CSS, którą znalazłem na tych tablicach, aby używać pól wyboru i radiobutonów mojego własnego projektu w aplikacji online, którą rozwijam.Sprawdź, czy radiobuttons lub pola wyboru są zaznaczone w IE8
Co mogę zrobić, to ja ukryć radio i kontrole i pokazać moje grafiki jako tła w etykiecie tak:
input[type="radio"] {
display: none;
}
input[type="radio"] + label {
display: block;
padding: 8px 4px 8px 22px;
background: url(../img/filter-checks.png) 0 0 no-repeat;
}
input[type="radio"]:checked + label {
background-position: -30px 0;
}
Oczywiście używam coś podobnego do wyboru. Działa jak urok, ale niestety nie tak w IE8, który nie radzi sobie z atrybutem: checked.
Próbuję naprawić to za pomocą jquery, wykrywając, jeśli jest zaznaczone radio, następnie dodaj klasę "sprawdzone" i przypisz do tego ten sam CSS.
$('input[type="radio"],input[type="checkbox"]').each(function() {
if ($(this).is(':checked')) {
$(this).addClass('checked');
}
else {
$(this).removeClass('checked');
}
});
Niestety, chociaż znaleźć wiele postów mówiąc jest („: sprawdzone”), co powinno działać w IE8, to nie ma to dla mnie zrobić. Widzę, że klasa "sprawdzona" jest dodawana lub usuwana po kliknięciu przycisku radiowego w dowolnej innej przeglądarce, ale nie w IE8.
Jakieś rozwiązanie lub alternatywa, aby dowiedzieć się, czy przycisk radiowy lub pole wyboru jest zaznaczone, czy nie w IE8?
---------- UPDATE 08-07 09:30 -------------
Po pewnym ponownego ja całkowicie przerobione mój kod konkretnie skierować radia -przyjmij i pomiń: wszystko sprawdzone. Teraz uważam, że prawdziwym problemem wydaje się być addClass nie wydają się działać w IE8> (
Mój nowy jquery.
$('input[type="radio"]').click(function() {
var radioName = $(this).attr('name');
$(this).parent('.form-check').css('background-color', '#ff0000');
$(this).parent('.form-check').addClass('checked');
$('input[type="radio"][name="' + radioName + '"]').not(this).parent('.form-check').css('background-color', 'transparent');
$('input[type="radio"][name="' + radioName + '"]').not(this).parent('.form-check').removeClass('checked');
});
Czerwone tła są dodawane do testowania pracy oni, addClass nie. ... jakieś dobre pomysły?
---------- UPDATE 08-07 10:00 -------------
Należy ignorować, że ... narzędzia programistów IE8 najwyraźniej nie są wystarczająco rozwinięte, aby pokazać zmiany nazw klas w locie.Funkcja działa, ale mój CSS nie.
input[type="radio"]:checked + label,
.checked input[type - "radio"] + label {
background-position: -30px 0;
}
IE8 nie czyta drugiej linii lub całego zdania, gdy nie rozumie pierwszej linii, która mówi: sprawdzone. Mój błąd. Również, gdy same przyciski radiowe mają wyświetlacz: brak, nie istnieją one dla IE8 i dlatego nie mogą być celowane ...
Powrót do deski kreślarskiej.
Sprawdzasz go w programie obsługi kliknięć lub co? –
Może być '$ ('input [type =" radio "], input [type =" checkbox "]') selektor css3 nie będzie działał w IE 8 –
Czy' $ ('# yourelement') .project (' zaznaczone ")' return true or false? – Sumurai8