У меня есть следующий html-код. Я не хочу, чтобы десятичная точка была в этом поле ввода.
может кто-то дать мне знать, как этого добиться.
<input type="number" min="0" step="1" ng-pattern="/^(0|[1-9][0-9]*)$/" ng-model="params.data" />
Пожалуйста, имейте в виду, что ngPattern
просто используется для проверки поля в форме (formName.field.$error.pattern
), он все же позволяет вам вводить десятичную точку или что-то еще, даже если ваше регулярное выражение не соответствует.
Вы можете сделать это, используя:
Я сделал этот фрагмент двумя способами:
(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>
Я надеюсь, что это помогает!