Оформление поля onblur событие (действительно странно!) - PullRequest
0 голосов
/ 10 февраля 2011

Я в настоящее время борюсь с действительно очень странной проблемой.

  • У меня есть поле формы телефонного номера
  • Есть функция, которая запускает onblur и проверяет, является ли значение допустимым
  • Каждый второй раз Я делаю размытие, оно подтверждается как ложное, даже если значение верное, а значение не изменилось!

Я настроил небольшой тестовый пример: http://jsfiddle.net/U3jwx/2/

Просто нажмите на поле, а затем за его пределы - несколько раз!

Как это может быть?Значение даже не меняется!Я полагаю, это как-то связано с функцией проверки ...

1 Ответ

0 голосов
/ 10 февраля 2011

сбрасывает lastIndex вашего регулярного выражения на 0 между вызовами.

var validatePhoneNumber = function(val) {        
        var re = /^\+([0-9]{1,3})([\-\s]{0,1})([0-9]{2,6})([\-\s]{0,1})([0-9\-\s]{0,})$/gi;
        re.lastIndex = 0;
        return re.test(val);
};
...