2013-09-20 2 views
0

Я пытаюсь выяснить, как это jquery.each() может работать на IE 7:IE7 Jquery.Each() не работает

 var todosOsCampos = $(".validate_mail"); 

     jQuery.each(todosOsCampos, function(){ 
      //Verifica e-mail 
      email = $(this).val(); 
      if(email!=''){ 
       er = /^[a-zA-Z0-9][a-zA-Z0-9\._-][email protected]([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/; 
       if(!er.exec(email)) { 
        erro = 1; 
        $(this).css("border", "solid 1px #F00"); 
       } 
      } 
     }); 

Я проверка электронной почты, но на IE7 не работает должным образом

Я думал, что проблема решена, но я был неправ. Я изменил код, как попросил меня пользователь user2246674.

 var todosOsCampos = $(".validate_mail"); 

     todosOsCampos.each(function(){ 
      email = this.value; 
      console.log(email); 
      if(email!=''){ 
       er = /^[a-zA-Z0-9][a-zA-Z0-9\._-][email protected]([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/; 
       if(!er.exec(email)) { 
        erro = 1; 
        this.style.border = "solid 1px #F00"; 
       } 
      } 
     }); 

Но IE7 возвращается сообщение последующих:

Проблема с этой веб-страницы может предотвратить его отображения правильно или функционирует должным образом. В будущем ...

А потом я нажал на кнопку показать детали:

Line: 528 
Char: 5 
Error: Object does not support this property or method 

Код: 0

линии 528 соответствуют этому

email = this.value;

Кто-то может мне помочь?

ответ

0

Я бы подумал о подозрительном коде - и подвержен неудаче - потому что используется неправильный «каждый». (Но кто знает, удивительные вещи могут случиться.)

Существует jQuery.each (например $.each(array, ..)), который является используются:

Обобщенная функция итератора, которая может быть использована для бесшовной итерации над объектами и массивами.

И .each (например $(selector).each(..)), который должен быть использованы:

Итерация над объектом JQuery, выполняя функцию для каждого элемента.

В этом случае используйте .each для итерации по объекту JQuery, такие как:

todosOsCampos.each(function(){ .. }) 

Помните, что $(selector)всегда возвращает объект JQuery, который представляет собой набор из 0 или более элементов соответствует.

Если проблемы устранены после исправления использования, обновите сообщение с дополнительной информацией, включая предупреждения/сообщения об ошибках.

+0

Я попробую таким образом –

+0

ЭТО СМОТРЕТЬ, ЧТОБЫ РАБОТАТЬ ПЯТЬ ПРЯМО СЕЙЧАС. Это смешно, потому что я пробовал вот так: $ .each ($ (Selector), function() {}); Jquery.each ($ (Selector), function() {}); Ни один из этих вариантов выше не был правильным синтаксисом для переводчика ie7. Самое смешное, что на других переводчиках, таких как Chrome, Firefox и IE> 8, работала отлично. но спасибо. –

+0

Нет, нет, '$ (селектор) .each (..)' и '$ .each (array, ..)' :). Должна быть тонкая разница с IE7. Ну ладно - это не удивительно! – user2246674