如何在尖角输入类型=“文本”字段中停止字符

时间:2019-06-26 13:37:44

标签: html angular typescript angular7

我的客户要求如下 1.输入字段应为文本 2.不应包含字符 3.范围应为0-100 4.输入格式为99.99

我们正在使用角度7。模式不适用于验证

有人可以帮助我吗?我从一天开始挣扎:( 谢谢!

1 个答案:

答案 0 :(得分:0)

要获得预期的结果,请使用keyup事件的以下选项

  1. 在每个按键上,按'切入输入值。'
  2. 拆分数组的第一部分在小数点前有值,数组的第二部分在小数点后有值
  3. 根据长度重新分配输入值

component.html

<input type="text" (keyup)="onKeyup($event)" />

component.ts

 onKeyup(e) {
    const val = e.target.value.split(".");
    if (!val[1]) {
      e.target.value =
        val[0].split("").length > 2
          ? e.target.value.substr(0, e.target.value.length - 1)
          : e.target.value;
    } else {
      e.target.value =
        val[1].split("").length > 2
          ? val[0] + "." + val[1].substr(0, val[1].length - 1)
          : e.target.value;
    }
  }

工作代码示例以供参考-https://codesandbox.io/s/angular-p1gh1

使用HTML和javascript更新代码

codepen-https://codepen.io/nagasai/pen/xoLqdN?editors=1010

function onKeyup(e) {
  const val = e.target.value.split(".");
    if (!val[1]) {
      e.target.value =
        val[0].split("").length > 2
          ? e.target.value.substr(0, e.target.value.length - 1)
          : e.target.value;
    } else {
      e.target.value =
        val[1].split("").length > 2
          ? val[0] + "." + val[1].substr(0, val[1].length - 1)
          : e.target.value;
    }
  }
<input type="text" onkeyup ="onKeyup(event)"/>