Событие для типа ввода = число
Я немного новичок в 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