номер типа ввода - не может удалить десятичную точку

0

У меня есть следующий html-код. Я не хочу, чтобы десятичная точка была в этом поле ввода.

может кто-то дать мне знать, как этого добиться.

 <input type="number" min="0" step="1" ng-pattern="/^(0|[1-9][0-9]*)$/" ng-model="params.data" />
  • 0
    Возможно дублирование регулярного выражения javascript для несоответствия слову
  • 0
    Как насчет запуска функции после снятия фокуса? Они вводят 093.4 и переходят к следующему входу. Затем функция возвращает 093
Показать ещё 5 комментариев

1 ответ

1
Лучший ответ

Пожалуйста, имейте в виду, что ngPattern просто используется для проверки поля в форме (formName.field.$error.pattern), он все же позволяет вам вводить десятичную точку или что-то еще, даже если ваше регулярное выражение не соответствует.

Вы можете сделать это, используя:

  1. директива ngChange;
  2. Модуль ngMask (всегда мне нужны входные данные с масками, которые я использую).

Я сделал этот фрагмент двумя способами:

(function() {
  "use strict";
  angular
    .module('app', ['ngMask'])
    .controller('mainCtrl', mainCtrl);

  function mainCtrl($scope) {
     $scope.params = {};
     $scope.checkNumber = function() {
       if ($scope.params.data) {
         $scope.params.data = $scope.params.data.replace(/\D+/, '');
       }
     }
  }
})();
<!DOCTYPE html>
<html ng-app="app">

<head>
  <script src="/angular.min.js"></script>
  <script src="/ngMask.min.js"></script>
</head>

<body ng-controller="mainCtrl">
  <form name="form" novalidate>
    <label for="withoutMask">Input without mask: </label>
     <input type="text" id="withoutMask" ng-model="params.data" ng-change="checkNumber()">
    <hr>
    <label for="mask">Input with mask: </label>
    <input type="text" id="mask" mask="d" repeat="15" restrict="reject" limit="false" ng-model="otherInput">
  </form>
</body>

</html>

Я надеюсь, что это помогает!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню