我有一个字段,应该只接受数字,我通常知道我们做input type="number"
。角度最好的方法是只允许数字?只接受输入字段中的数字。角度的方式(没有html5)
0
A
回答
1
您可以创建一个指令类似如下,然后使用它的HTML元素属性
.directive('validNumber', function() {
return {
restrict: 'A',
require: '?ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
//8:"BACKSPACE",9:"TAB",17:"CTRL",18:"ALT",37:"LEFT",
//38:"UP",39:"RIGHT",40:"DOWN",45:"INSERT",46:"DELETE",
//48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9", 67:"C",86:"V",
//96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",
//109:"-",110:".",144:"NUMLOCK", 189:"-",190:".",
var keyCode = [8, 9, 17, 37, 38, 39, 40, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 67, 86, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 109, 110, 144, 189, 190];
element.bind("keydown", function (event) {
if ($.inArray(event.which, keyCode) == -1) {
scope.$apply(function() {
scope.$eval(attrs.validNumber);
event.preventDefault();
});
event.preventDefault();
}
});
}
};
});
0
也许你可以利用这个简单的指令..
// ---Directive for Digit restriction on input fields.---------
myApp.directive('numbersOnly', function() {
return {
require : 'ngModel',
link : function(scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function(inputValue) {
// if the input is 'undefined'
if (inputValue == undefined)
return ''
var transformedInput = inputValue.replace(/[^0-9]/g, '');
if (transformedInput != inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return transformedInput;
});
}
};
}) ;
和在HTML中,你可以声明的指令,因为
<input type="numbers" numbers-only ng-model="numberModel">
所以,理想情况下,输入字段将与数作为唯一的数据更新模型..
这到底是怎么发生的事情,每次按下某个字符时,它都会被我们的指令numbersOnly监控,这里是您仅挑选数字作为输入的地方。
希望这有助于出... 干杯
相关问题
- 1. 只需要接受输入字段中的数字
- 2. 输入字段只接受从0到12的数字?
- 3. 只接受输入中的数字和字母
- 4. 数字字段只接受数和`,`
- 5. 只允许输入字段中逗号分隔的数字使用角度js
- 6. 如何验证输入只接受12位数字的输入?
- 7. 强制DataGridView Cell只接受数字输入的最佳方式是什么?
- 8. 只接受字母作为输入
- 9. 只接受数字作为Python中的输入
- 10. 接受在HTML输入字段
- 11. 如何使输入字段接受区域设置相关的数字格式?
- 12. Primefaces输入字段只接受特定语言
- 13. 只有在使用JavaScript的输入中接受带十进制的数字?
- 14. JavaScript正则表达式只接受没有“,”或“。”的数字。字符
- 15. EditText字段没有输入
- 16. HTML5有效表单输入/字段
- 17. 接受在文本框中只有字符输入
- 18. 角度材料输入字段不是样式的
- 19. 如何在javascript中输入字段接受字母数字数据
- 20. 如何将所有输入字段设置为只读ng-template的角度
- 21. 如何在输入字段中只输入10个数字?
- 22. 角度限制输入[数字]长度
- 23. 量角器:gettext的没有得到输入字段的值
- 24. 闪光灯只接受输入框中的多个字符
- 25. 只接受文本框中的数字
- 26. 如何创建只接受其他字段的字段?
- 27. 只接受在特定字段中具有最小值的行
- 28. 只有在HTML5输入形式匹配每一个Unicode字母
- 29. CakePHP只是显示一个没有输入的表单字段
- 30. 如何只接受HTML5中的字符值
的可能的复制[angularjs:只允许数字被输入到一个文本框(http://stackoverflow.com/questions/16091218/angularjs-allows-只能输入文本框中的数字) – Oyeme
选中[this](http://codepen.io/apuchkov/pen/ILjFr) – gianlucatursi
您可以使用任一指令...函数.. ..模式.... –