【问题标题】:Validate the input, Input field should not accept more than 100 value in angular 8验证输入,输入字段不应接受角度 8 中超过 100 个值
【发布时间】:2021-02-02 06:43:57
【问题描述】:

我必须验证输入字段以仅接受数字和小数,小数点后一位。我能够实现它。我还需要限制输入字段,使其不应超过 100。我为此添加了一个条件,但它失败了。我正在按键上验证这一点,任何人都可以让我知道我哪里出错了。 stackblitz 编辑器链接 - https://stackblitz.com/edit/angular-with-alternative-6zczr4 链接-https://angular-with-alternative-6zczr4.stackblitz.io

代码:- app.component.html

<div class="form-group mr-3">
    <p class="mb-0">Accepts Number
    </p>
    <input type="number" min="0" max="100" (keypress)="numberOnly($event)" class="form-control form-width" name="electricity" [(ngModel)]="electricity">
        </div>

app.component.ts

  public electricity = "";

  numberOnly(event): boolean {
    const charCode = event.which ? event.which : event.keyCode;
    const value = event.target.value;
    if (("" + event.target.value).indexOf(".") !== -1) {
      if (("" + event.target.value).split(".")[1].length > 0) {
        return false;
      }
    }
    if (event.target.value > 100) {
      return false;
    }

    if (charCode === 46) {
      return true;
    }
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
      return false;
    }
    return true;
  }

【问题讨论】:

    标签: javascript html angular keypress


    【解决方案1】:
    if (event.target.value > 100) {
         return false;
       }
    

    这确实应该失败。您将输入框的值与 100 进行比较。您需要将值的 长度 与 100 进行比较,而不是值本身。您可以使用以下内容:

    if(("" + event.target.value).length > 100){
      return false
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用纯 html 来实现结果。不需要javascript。

      看看代码,这是你要找的吗?

      <form>
      <input
       type="number" 
      min="0"
      max="100"
      step="0.1">
      
      <button type="submit">Submit</button>
      </form>

      【讨论】:

        猜你喜欢
        • 2019-07-23
        • 2018-10-22
        • 1970-01-01
        • 2018-08-30
        • 2021-09-05
        • 1970-01-01
        • 2020-05-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多