获取输入类型的长度="数字" angularJS

时间:2016-03-14 14:15:48

标签: javascript html angularjs angular-material

所以我看到了很多答案,但没有一个适合我的情况。我不能使用jQuery fyi。

<ng-repeat="stuff in junk">
  <md-input-container>
    <input type="number" ng-model="stuff.value.currentValue" ng-keypress="myController.checkLength(stuff.length)"

这显然是我正在做的非常粗略的模型。最终我只是想做一个数字输入,我可以限制长度,而不是只有一个错误告诉他们太多的字符,提交。因为模型是可变的,我不能getelementbyID,不能使用maxlength作为其类型=&#34;数字&#34;等等。我彻底难倒。我真的不想使用标准输入,然后对用户输入进行验证,但我没有想法

2 个答案:

答案 0 :(得分:0)

在这种情况下,你应该使用attribute max

<input type="number" max="9000" ng-model="stuff.value.currentValue" ng-keypress="myController.checkLength(stuff.length)" />

答案 1 :(得分:0)

如果我正确理解了这个问题,那么你是否试图在每个输入的长度上设置一个硬限制,作为ng-repeat中每个stuff.value.currentValue(可能是变量)的长度。 。如果这是正确的,您可以尝试以下方法:

<input type="number" 
 maxlength="{{::stuff.value.currentValue.length}}"  
 ng-model="stuff.value.currentValue" 
 ng-keypress="myController.checkLength(stuff.length)" />

绑定中变量名称前的::表示一次绑定,这意味着该值在第一个摘要周期后设置,并且在后续摘要后不会更改。这意味着,当你的ng-repeat循环遍历数据时(比如说&#39; Peter&#39;,&#39; Paul&#39;和&#39; Mary&#39;),每个输入&#39 ; s最大长度将是原始输入的长度(在本例中为5,4和4),并且在更新模型时不会更改。 maxlength属性不会提供错误消息,但不允许用户输入长度超过每个stuff的原始长度的文本.value.currentValue