【问题标题】:Event for input type=number输入类型的事件=数字
【发布时间】:2022-02-11 03:49:00
【问题描述】:
我对 Angularjs 有点陌生。在 Chrome 中,对于数字类型的输入字段,按向上和向下键箭头会增加/减少输入的值。它需要被禁用。有什么想法或帮助吗?
我尝试使用 jQuery:$(":input").bind('keyup mouseup', function (),但 ng-model 绑定没有更新。可能是因为 Angular js 无法识别 jQuery 所做的更改。
【问题讨论】:
标签:
html
jquery
angularjs
input
【解决方案1】:
模型不会在 jquery 事件中改变。在 angularjs 中使用 ng-keypress 事件
【解决方案2】:
如果您需要永久禁用它,最好换一种方式,使用常规文本输入,但限制除数字以外的其他字符。
<input type="text" ng-pattern="/^[0-9]*$/" />
查看ngPattern 文档
【解决方案3】:
您可以使用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>