0
我搜索了幾乎所有東西,但無法得到答案,也許有人可以幫助。 好吧首先讓我介紹一下這個指令做,,它不會允許任何字母在我輸入輸入 這裏我OnlyNumeric
指導工作時,我的input type = "text"
, 但它不工作時input type = "number"
這裏是我的指令當輸入類型=「數字」在角js時,OnlyNumeric指令不起作用
app.directive('onlyNumeric', function() {
return {
require: 'ngModel',
link: function (scope, element, attr, ngModelCtrl) {
function fromUser(text) {
alert();
if (text == null) { text = ""; }
var text = text.toString();
var transformedInput = text.replace(/[^0-9]+/g, '');
if (transformedInput.length > 7) {
transformedInput = transformedInput.slice(0, -1);
}
if (transformedInput !== text) {
ngModelCtrl.$setViewValue(transformedInput);
ngModelCtrl.$render();
}
if (!isNaN(Number(transformedInput))) {
// alert("decimal no");
return parseInt(transformedInput);
}
else { return transformedInput; }
// return transformedInput;
}
ngModelCtrl.$setValidity('is_valid', false);
ngModelCtrl.$parsers.push(fromUser);
}
};
});
我的HTML
<input type = "number" only-numeric ng-model ="age">
所以,當我改變我的類型爲 「文本」 它的工作原理
所以我嘗試另一種方式來捕獲keydown事件,但是,我沒有得到如何捕捉我的輸入值, 線ngModelCtrl.$parsers.push(fromUser);
不經過我的輸入,直到輸入有效
對不起的是,這是一個錯字,我編輯QTS,但仍然相同的輸出 –