javascript - 无法对 type=number 的输入字段应用限制

标签 javascript html angular typescript

下面是我的type="number"输入框。我应用了 min 和 max 属性来限制用户输入字段的值。问题是这个给定的验证仍然允许用户在键入数值时超出限制。请告诉我如何阻止他/她输入超过限制的值。

 <input name="capacity" [(ngModel)]="nService.capacity" type="number" 
class="input-minimal" min="1" max="9999" placeholder="Capacity" required>

最佳答案

type = "number" 的输入上设置属性 maxmin 将阻止用户使用微调器。但它不会阻止键盘输入。为此,您必须编写自定义验证程序。

在我的示例中,我使用可选的错误验证 block 绑定(bind)到 keyup 事件,以防万一您希望让用户自行更正。

Plunker

HTML:

 <input autofocus id="myModel" (keyup)="preventInput($event)" 
       name="myModel" 
        #myModel="ngModel"  style="width:60px"  
        [(ngModel)]="capacity" type="number" 
       class="input-minimal" min="1" max="99" 
       placeholder="Capacity" required>

typescript :

 preventInput(event){
    let value=this.capacity;
    if (value >= 100){
      event.preventDefault()
      this.capacity = parseInt(value.toString().substring(0,2));
    }
  }

附言对于验证部分,我使用了 here 中的解决方案

关于javascript - 无法对 type=number 的输入字段应用限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46088738/

相关文章:

禁用 Javascript,简短问题

Javascript:从函数返回html元素

javascript - 二维变换、旋转不符合预期

Git 无法使用 IntelliJ 或 SourceTree 在我的项目上提交 Angular 文件夹

angular - 如何使用 ngrx-router-store 在 ngrx 效果中获取路由参数?

javascript - Javascript 中的单例和原型(prototype)设计

javascript - 提交消息后,textarea出现换行

angular - 无法在单元测试用例中调用@HostListener方法

HTML/CSS Span 标签导致 Bootstrap 模态页脚按钮降低

javascript - 选择 html select 下拉列表的动态创建选项