Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Не работают некоторые скрипты в ie.


Автор: Andrewhite 23.5.2013, 13:01
Проблема заключается в том, что в ie не работает определенный скрипт, в то время как остальные работают. С остальными браузерами проблем нет. Только с ie, в 10 версии, конечно всё ок. Подскажите, в чем может быть проблема.
есть такой htm
Код

<form class="form-send">
   <div class="column-fieldset">
     <fieldset>
        <textarea class="message true-input" placeholder="ля"></textarea>
     </fieldset>
    </div>
    <div class="column-fieldset">
        <fieldset class="ramka">
            <input class="window fieldset-type true-input" type="text" placeholder="ля">
         </fieldset>
         <fieldset class="ramka">
            <input class="window fieldset-type true-input" type="text" placeholder="ля">
          </fieldset>
           <fieldset class="ramka">
             <input class="window fieldset-type true-input" type="text" placeholder="Ля">
           </fieldset>
           <fieldset class="ramka">
              <input class="window fieldset-type true-input" type="text" placeholder="Ля">
            </fieldset>
            <div class="sinbad">
               <input class="button-send" type="submit" title="" value="Ля">
             </div>
      </div>
</form>


Код

<form class="search" name="myForm" action="action.php" onsubmit="return validateForm(this)" method="post">
       <input name="fname" class="form-search" type="text">
       <input type="submit" class="btn" value=""/>
</form>


и такой js. Который присваивает классы обязательным полям

Код

var searchText = $('.search input.form-search, .true-input'),
    searchSubmit = $('.search input.btn, .button-send'); 

searchSubmit.click(function(){
   var inputs = $(this).parents('form').find('.true-input, .form-search');
   if (inputs.val().length<1) {
      inputs.addClass('error');
      return false;
   } else {
      inputs.removeClass('error');
   }
});

searchText.each(function(i,element){
   $(element).on('focus',function(){
      $(element).removeClass('error');
   });
});

searchText.filter('.form-search').on('clickoutside',function(){
   $(this).removeClass('error');
});


Автор: akizelokro 23.5.2013, 19:27
Вообще, jQuery гарантирует, что будет работать нормально не раньше IE9. Это означает то, что скрипты могут работать под IE7 и IE9, а могут и не работать.
Самый большой финт конём я видел, когда один и тот же скрипт c продвинутым checkbox'ом на одной html-странице c небольшим количеством элементов checkbox'a работает нормально, а стоит увеличить количество элементов до 1000 и больше и усложнить структуру html-страницы множеством таблиц в стиле "до стилей и до jQuery", тот же скрипт намертво (на 5 минут) грузит не только IE, но и Explorer.
"Мутна водица".. и каждый отдельный случай в IE надо рассматривать по отдельности.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id519de95c6ccc19161e000002#findElement_E7045_519e43666ccc19852000605e_0

Автор: akizelokro 23.5.2013, 20:14
не checkbox, а combobox. свосем мозги поплавились сегодня ))

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id519de95c6ccc19161e000002#findElement_E7045_519e4e766ccc191f250003d0_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)