Событие для типа ввода = число

Я немного новичок в angularjs. В chrome для полей ввода числового типа нажатие клавиш со стрелками вверх и вниз увеличивает / уменьшает введенное значение. Это должно быть отключено. Любые идеи или помощь в том, как это можно сделать?

Я попытался использовать Jquery $(":input"). Bind('keyup mouseup', function (), но привязка ng-модели не обновляется. Возможно, угловой js не распознает изменения, сделанные с помощью jquery.

3 ответа

Решение

Модель не изменится внутри события jquery. Использование события ng-keypress в angularjs

Ты можешь использовать ng-model директива для доступа к значению ввода в контроллере, и ng-disabled директива для контроля состояния ввода. Надеемся, что следующая демонстрация может быть полезна:

var app = angular.module('demo', []);

app.controller('DemoCtrl', function($scope) {
  $scope.myNumber = 0;
  $scope.isDisabled = false;
  $scope.toggle = function() {
    $scope.isDisabled = !$scope.isDisabled;
  };
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="demo">
  <div ng-controller="DemoCtrl">
    <input type="number" ng-model="myNumber" ng-disabled="isDisabled"/>
    <button ng-click="toggle()">Disable/Enable</button>
  </div>
</div>

Если вам нужно отключить это навсегда, лучше сделайте это другим способом, используйте обычный ввод текста, но ограничивайте другие символы, кроме чисел.

<input type="text" ng-pattern="/^[0-9]*$/" />

Проверьте документы ngPattern

Другие вопросы по тегам