我有一個字段,應該只接受數字,我通常知道我們做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
您可以使用任一指令...函數.. ..模式.... –