Форматирование типа ввода = числовые поля с запятыми, а также добавление минимальной максимальной проверки - PullRequest
0 голосов
/ 08 мая 2019

В настоящее время у меня есть много полей ввода типа = число в форме с проверкой мин и макс. В поле ввода отобразится сообщение об ошибке, если пользователь введет более 6 цифр в поле с 6-значным максимальным числом.

Но теперь у меня есть требование форматировать числа запятыми. Я знаю, что вы не можете ввести запятую в поля ввода типа = число. Если я сделаю это текстовое поле и добавлю директиву для форматирования строки, то теперь значение становится строкой, и я не могу выполнить проверку мин / макс, а также значение сохраняется как строка, а не число.

Мне нужна помощь в выяснении того, как отформатировать число запятыми, а также добавить проверку min / max и сохранить ее как число, а не строку.

1 Ответ

0 голосов
/ 11 мая 2019

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

myApp.directive("limitTo", [function() {
    return {
        restrict: "A",
            link: function(scope, elem, attrs) {
            var limit = parseInt(attrs.limitTo);
            angular.element(elem).on("keypress", function(e) {
                var char = String.fromCharCode(e.which);
                if (e.which != 8 && e.which != 0) {
                    if (char < '0' || char > '9') {
                        e.preventDefault();
                    }
                    else if (this.value.length == limit) {
                        e.preventDefault();
                    }
                }
            });
        }
    }
}]);

И тогда ваше поле ввода будет выглядеть примерно так:

<input type="number" limit-to="6">

Это не 'Точно отформатируйте ввод, однако он исключает ввод определенных символов с помощью кода символа.Вы можете разрешить добавление запятых во входные данные, добавив больше условных выражений в оператор if на основе кода символа.Если вы хотите отформатировать это, я бы порекомендовал использовать шаблон ng и регулярное выражение, чтобы получить точное форматирование, которое вам нужно.

Наконец, я бы рекомендовал использовать проверку формы angularjs.https://docs.angularjs.org/guide/forms Это очень удобно именно для того, что вы пытаетесь сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...