我需要显示具有以下功能的input
:
controller
变量所以我尝试了<input type="text">
和<input type="number">
,但每个都有自己的优点和缺点:
<input type="text">
:
<input type="number">
:
我目前正在使用<input type="text">
并使用以下指令:
app.directive('commaParse', ['$filter', function ($filter) {
return {
require: '?ngModel',
link: function (scope, elem, attrs, ctrl) {
if (!ctrl) return;
//allow only numbers
elem.bind('keypress', function (event) {
if (event.keyCode < 48 || event.keyCode > 57) {
event.preventDefault();
}
});
//prevent pasting text
elem.bind('paste', function (event) {
event.preventDefault();
});
//handle user input
ctrl.$formatters.unshift(function (a) {
var res = $filter("number")(ctrl.$modelValue);
return res;
});
//handle value changes in code
ctrl.$parsers.unshift(function (viewValue) {
var plainNumber = viewValue.replace(/[^\d|\-+|\.+]/g, '');
var res = $filter("number")(plainNumber);
elem.val(res);
return plainNumber;
});
}
};
}]);
我尝试更改inputmode
和lang
属性,但没有成功。
所以问题是:如何让我的输入显示所需的格式化值和在手机上弹出数字键盘?