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

        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\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/;
                if(!er.exec(email)) {
                    erro = 1;
                    $(this).css("border", "solid 1px #F00");
                }   
            }
        });

Я проверяю почту, но на Ie7 работает некорректно

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

        var todosOsCampos = $(".validate_mail");

        todosOsCampos.each(function(){
            email = this.value;
            console.log(email);
            if(email!=''){
                er = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([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
Kauê Mendes De Freitas 21 Сен 2013 в 00:43

1 ответ

Лучший ответ

Я считаю код подозрительным - и склонным к сбою - потому что используется неправильный "each". (Но кто знает; могут случиться удивительные вещи.)

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

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

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

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

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

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

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

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

0
user2246674 21 Сен 2013 в 00:57
КАЖЕТСЯ РАБОТАТЬ FINE ПРЯМО СЕЙЧАС. Забавно, потому что я пробовал вот так: $ .each ($ (Selector), function () {}); Jquery.each ($ (Селектор), функция () {}); Ни один из этих вариантов выше не был правильным синтаксисом для интерпретатора ie7. Забавно то, что на других интерпретаторах, таких как Chrome, Firefox и IE> 8, работали отлично. но спасибо.
 – 
Kauê Mendes De Freitas
21 Сен 2013 в 01:06
Нет-нет, $(selector).each(..) и $.each(array,..) :) Должно быть небольшое различие с IE7. Да ладно - это не удивительно!
 – 
user2246674
21 Сен 2013 в 01:09