我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
I want to create an input number box in AngularJS app on which a user should not be able to type decimal numbers. (an integer number input box)
这个想法是,当用户试图在数字输入框中键入数字时,不应该输入小数点。我想在控制器上捕获$事件,然后更改输入控件上的数据。但这对我不起作用。我在angular应用程序网页上有这个输入框:
<input type="number" ng-keydown="checkfordecimal($event, age)" min="1" max="125" name="inputage" ng-required="true" ng-model="model.age" />
控制器:
$scope.checkfordecimal = function($event, age)
{
if($event.which === 110 || $event.which === 190)
{
//do something
}
}
你能想出更好的方法来实现这一点吗?
这应该是一个directive
以下是我在这里看到的一个例子(来源于@My Mai):
app.directive('onlyDigits', function () {
return {
require: 'ngModel',
restrict: 'A',
link: function (scope, element, attr, ctrl) {
function inputValue(val) {
if (val) {
var digits = val.replace(/[^0-9]/g, '');
if (digits !== val) {
ctrl.$setViewValue(digits);
ctrl.$render();
}
return parseInt(digits,10);
}
return undefined;
}
ctrl.$parsers.push(inputValue);
}
};
});
用法:
<input type="text" name="number" only-digits>
使用RegEx可以杀死所有非十进制字符,如下所示:
$scope.checkfordecimal = function(){
$scope.model.age = $scope.model.age.replace(/'D/g, '');//Remove all non decimal characters and store it in the model
}
'D
的意思是"查找所有非数字"g
标志表示"全局"或"检查每个字符"
然后,每个匹配项(如点)都将被一个空字符串(''
)
相关文章:
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 用户在文本框中输入一个数字,并根据使用 PHP 输入的数字重定向到另一个网页
- 如何要求用户输入一个介于 1 和 50 之间的整数,然后小程序打印出一行这个星数
- Javascript提示和警报输入一个数字,它将循环,您将输入数字以获得它的平均值
- 如果使用jquery输入一个字段,则自动填充其他字段
- 一直要一个数字,直到输入一个偶数
- 需要用户输入一个随机数,然后提醒用户数字 ibnputted
- 以 jQuery 为中心的文本框在 Safari 中输入一个字符后失去焦点
- 如何将我的 Google 地图功能从自动查找我的位置更改为让我输入一个位置
- 如何让两个不同的输入(一个用于移动设备,一个用于桌面)修改同一变量
- 允许html输入框只输入一个完整的数字和精确的十进制.5
- 我怎样才能使我的表单输入不返回任何结果,当它输入一个空查询
- 用TypeScript输入一个约束字典
- 只有在用户输入一个字符后,AngularJS才会调用数据库
- 在javascript中输入一个正斜杠
- 如何使移动
- 如何确保用户在Javascript中输入一个有效的数字
- Rails 3 -设计'请输入一个电子邮件地址'弹出消息,即使禁用了validatable
- 在输入中输入一个值
- 输入一个返回的可观察对象