1

我希望我的文本框只允許數字,並且對其有字符限制。輸入文字的字符數限制

目前,我有數字工作......現在我有問題想出如何限制字符。

這是我有...

JS:

app.directive('numbersonly', function() { 
    return { 
     restrict: 'A', 
     link: function (scope, elm, attrs, ctrl) { 
      elm.on('keydown', function (event) { 
       if (event.which == 64 || event.which == 16 && elm.val().length > 4) { 
        return false; 
       } else if (event.which >= 48 && event.which <= 57) { 
        return true; 
       } else if (event.which >= 96 && event.which <= 105) { 
        return true; 
       } else if ([8, 13, 27, 37, 38, 39, 40].indexOf(event.which) > -1 && elm.val().length > 4) { 
        return true; 
       } else { 
        event.preventDefault(); 
        return false; 
       } 
      }); 
     } 
    } 
}); 

標記:

<input type="text" id="txtEmpAge" data-ng-model="newemployee.Age" class="form-control" numbersonly required /> 

回答

1

在HTML中輸入屬性的長度。我們可以採取多種形式使用它:

長度,輸入MINLENGTH MAXLENGTH

試試這個

maxlength="5" 
+0

我想在指令中處理它而不是標記 – user4756836

+0

如果您不想在HTML中處理它,您可以簡單地更改您在鏈接函數中傳遞的元素的屬性嗎?我是否錯過了一些東西,因爲我假設你必須把你想要的限制放在隔離的範圍上,你必須在指令中放入你的HTML,或者你希望所有的輸入都是相同的長度。 – Maccurt

+0

@Maccurt,因爲我使用了類似的指令輸入數字,它不允許maxlength和max似乎不能很好地工作 – user4756836

0

我有同樣的問題,並寫了一個指令推測這一切了。然後我找到了一個名爲angular-dynamic-number的插件,它對我有用。我建議你使用它,如果它滿足你的需要。 https://www.npmjs.com/package/angular-dynamic-number

+0

我不想有一個插件來做到這一點 – user4756836

+0

我可以問你爲什麼不'你想用插件嗎? – Maccurt