Функция валидации полей ввода.
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" бывают и другие приколы. может кто знает в чем проблема с ними? Вообще обнаружил что в сафари делает все наоборот. Вместо того что бы блокировать все лишние символы "," заменять на "." Получается что ". и ," блокируються а остальные символы и буквы вводить можно. Что не так?
Функция рабочая. Но. Проблемой оказалось то что в инпуте тип стоял number, для работы валидатора необходимо текстовый тип поля.
<input type="text">
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Делаю скачку обновлений с github из своего репозитория(есть доступ) при помощи nodejs
Всем привет! Подскажите пожалуйста как можно реализовать подобное переключение меню, когда блок появляется только когда пункт меню активный?...
Есть XML-файл, как правильно сделать его отображение с помощью AJAX и Javascript? Если я правильно понял суть, то на выходе должен будет получиться...
Как отправить клиенту HTML CSS и JS одновременно при использовании WS веб-сокетов?