获取输入类型的长度=“数字”角度JS

Get length of input type="number" angularJS

本文关键字:数字 角度 JS 输入 类型 获取      更新时间:2023-09-26

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

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

这显然是我所做的事情的一个非常粗略的模型。最终,我只是尝试进行数字输入,我可以限制长度,而不仅仅是在提交时错误地告诉他们太多字符。因为模型是变量,所以我不能得到elementbyID,不能使用maxlength作为它的type="number",等等。我彻底被难住了。我真的很想不使用标准输入,然后对用户输入进行验证,但我

的想法

您应该使用属性max在这种情况下应该是可能的。

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

正确理解了这个问题,您正在尝试将每个输入的长度设置为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 循环遍历数据时(比如说"Peter"、"Paul"和"Mary"),每个输入的最大长度将是原始输入的长度(在本例中为 5、4 和 4),并且在更新模型时不会更改。maxlength 属性不会提供错误消息,但不允许用户输入的文本长度超过每个 stuff.value.currentValue 的原始长度