gpt4 book ai didi

angularjs - 如何允许在输入中仅输入数字(数字和小数点)?

转载 作者:行者123 更新时间:2023-12-03 05:44:44 28 4
gpt4 key购买 nike

如何只允许在文本框中输入有效数字?

例如,用户可以输入“1.25”,但不能输入“1.a”或“1..”。当用户尝试输入下一个字符时,这将使其成为无效数字,他们无法输入。

最佳答案

我写了一个working CodePen example演示过滤数字用户输入的好方法。该指令当前仅允许正整数,但可以轻松更新正则表达式以支持任何所需的数字格式。

我的指令很容易使用:

<input type="text" ng-model="employee.age" valid-number />

该指令非常容易理解:

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

app.controller('MainCtrl', function($scope) {
});

app.directive('validNumber', function() {
return {
require: '?ngModel',
link: function(scope, element, attrs, ngModelCtrl) {
if(!ngModelCtrl) {
return;
}

ngModelCtrl.$parsers.push(function(val) {
if (angular.isUndefined(val)) {
var val = '';
}
var clean = val.replace( /[^0-9]+/g, '');
if (val !== clean) {
ngModelCtrl.$setViewValue(clean);
ngModelCtrl.$render();
}
return clean;
});

element.bind('keypress', function(event) {
if(event.keyCode === 32) {
event.preventDefault();
}
});
}
};
});

我想强调将模型引用排除在指令之外非常重要。

希望您觉得这有帮助。

非常感谢Sean Christe和 Chris Grimes 向我介绍了 ngModelController

关于angularjs - 如何允许在输入中仅输入数字(数字和小数点)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19036443/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com