Валидация в сафари

318
30 марта 2017, 21:26

Функция валидации полей ввода.

function validateValue() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, elem, attrs, ctrl) {
            var regex = new RegExp(/^\d{1,}((\.|,)\d{1,4})?$/);
            var regexNoLetters = /[a-zA-Zа-я-А-Я]/g;
            var re = /^(\d{1,5}[.,]\d{4})[\s\S]*/;
            ctrl.$validators.validateAmount = function(value) {
                if (ctrl.$viewValue == 0) {
                    return false;
                }
                if (value) {
                    var value = value.toString().replace(regexNoLetters, '').replace(',', '.');
                    var result = value.replace(re, '$1');
                    ctrl.$setValidity('amount', true);
                    ctrl.$setViewValue(result);
                    if (!regex.test(result)) {
                        ctrl.$setTouched();
                    }
                    ctrl.$render();
                    return !value ? true : regex.test(result);
                } else {
                    return false;
                }
            }
        }
    };

в хроме и аналогичных браузерах все работает нормально. Проблема в сафари. Нет возможности поставить "." то есть дробное число. Не могу понять в чем проблема. При чем в сафари на маке 17" нормально все. а на 13" проблема. Знаю что на 13" бывают и другие приколы. может кто знает в чем проблема с ними? Вообще обнаружил что в сафари делает все наоборот. Вместо того что бы блокировать все лишние символы "," заменять на "." Получается что ". и ," блокируються а остальные символы и буквы вводить можно. Что не так?

Answer 1

Функция рабочая. Но. Проблемой оказалось то что в инпуте тип стоял number, для работы валидатора необходимо текстовый тип поля.

<input type="text">
READ ALSO
Как авторизироваться на github c помощью node js?

Как авторизироваться на github c помощью node js?

Делаю скачку обновлений с github из своего репозитория(есть доступ) при помощи nodejs

291
Переключение анимации в горизонтальном меню

Переключение анимации в горизонтальном меню

Всем привет! Подскажите пожалуйста как можно реализовать подобное переключение меню, когда блок появляется только когда пункт меню активный?...

211
Отображение XML с помощью AJAX и Javascript

Отображение XML с помощью AJAX и Javascript

Есть XML-файл, как правильно сделать его отображение с помощью AJAX и Javascript? Если я правильно понял суть, то на выходе должен будет получиться...

338
Отправка клиентской части

Отправка клиентской части

Как отправить клиенту HTML CSS и JS одновременно при использовании WS веб-сокетов?

261