2014-01-20 2 views
1

У меня есть радио кнопки, как это:селектор CSS3: проверено не работает в IE8 (с использованием ie7.js)

<input class="check" type="radio" id="radio1" name="group"/> 
<label for="radio1">vrai</label> 
<input class="check" type="radio" id="radio2" name="group"/> 
<label for="radio2">faux</label> 
<input class="check" type="radio" id="radio3" name="group"/> 
<label for="radio3">75</label> 
<input class="check" type="radio" id="radio4" name="group"/> 
<label for="radio4">18</label> 

я выбранный класс, когда, которые :checked, но как ни странно, даже используя ie7.js это делает не работает в ie8.

Вот мои ЯШ:

$(document).ready(function() { 
    $('input:checked').addClass("selected"); 
    $('input').click(function() { 
     $('input:not(:checked)').removeClass("selected"); 
     $(this).addClass("selected"); 
    }); 
}); 
+0

вы должны попробовать использовать onchange event вместо –

+0

Где я должен использовать onchange? – lchabrand

+0

С 'ie7.js' селектор': checked' должен отлично работать в IE7/8, [есть даже тестовый пример для него] (http://ie7-js.googlecode.com/svn/test/checked.html), напоминающий то, что вы делаете. –

ответ

0

не уверен, что он должен делать, но я хотел бы переписать в следующем и посмотреть, если это что-то меняет:

$('input').not('input:checked').removeClass("selected"); 
$(this).addClass("selected"); 
+0

Все еще не работает на IE8 =) – lchabrand

0

Попробуйте использовать change() вместо click()

$(document).ready(function() { 
    $('input:checked').addClass("selected"); 
    $('input').change(function() {  // <--- HERE 
     $('input:not(:checked)').removeClass("selected"); 
     $(this).addClass("selected"); 
    }); 
}); 
+0

Не работает, потому что IE8 не распознает псевдоселекторы –

+0

С изменением все еще не работает в IE8. И я знаю о псевдоселекторах, поэтому я использую IE7.js (служба google) – lchabrand

0

Hy, Я сделал чистый javascri pt решение для вас, которое работает на всех браузерах. пожалуйста, посмотрите, если он вам полезна

  <script type="text/javascript"> 
       function check(selected) 
       { 
        var inputs= document.getElementsByTagName('input'); 
        for(i=0 ; i < inputs.length; ++i) 
        { 

         inputs[i].className=""; 
        } 
        selected.className="selected"; 
       } 
     </script> 

     <input class="check" type="radio" id="radio1" name="group" onclick="check(this);"/> 
     <label for="radio1">vrai</label> 
     <input class="check" type="radio" id="radio2" name="group" onclick="check(this);"/> 
     <label for="radio2">faux</label> 
     <input class="check" type="radio" id="radio3" name="group" onclick="check(this);"/> 
     <label for="radio3">75</label> 
     <input class="check" type="radio" id="radio4" name="group" onclick="check(this);"/> 
     <label for="radio4">18</label> 
+0

Привет, спасибо за ваше решение, но он все еще не работает в IE8 =/Не знаю, как я могу это исправить. – lchabrand

 Смежные вопросы

  • Нет связанных вопросов^_^