2017-01-18 15 views
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);不經過我的輸入,直到輸入有效

回答

0

我認爲你是不執行該指令,你應該用別的名稱,用破折號符號使用它,像這樣:

<input type="number" only-numeric ng-model="age"> 
+0

對不起的是,這是一個錯字,我編輯QTS,但仍然相同的輸出 –

相關問題