如何以角度停止输入类型=“文本”字段中的字符

Posted

技术标签:

【中文标题】如何以角度停止输入类型=“文本”字段中的字符【英文标题】:How to stop the characters in Input type="text" field in angular 【发布时间】:2019-11-08 11:33:22 【问题描述】:

我的客户要求如下 1.输入字段应该是文本 2. 不允许字符 3.它应该有0-100的范围 4.输入格式为99.99

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

谁能帮帮我。我从一天开始就在挣扎:( 谢谢!

【问题讨论】:

为什么不使用type="number" 当我使用数字时,我们会得到一个上下箭头,这不是要求的一部分。谢谢 您可以尝试this answer 中给出的技术来隐藏箭头。 你可以尝试使用掩码:npmjs.com/package/ngx-mask 你可以让你的自定义验证器函数这可能会有所帮助***.com/questions/39847862/… 【参考方案1】:

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

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

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

使用 htmljavascript 更新代码

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;
    
  
&lt;input type="text" onkeyup ="onKeyup(event)"/&gt;

【讨论】:

以上是关于如何以角度停止输入类型=“文本”字段中的字符的主要内容,如果未能解决你的问题,请参考以下文章

获取文本输入字段中的光标位置(以字符为单位)

获取文本输入字段中的光标位置(以字符为单位)

当文本与文本字段大小相同时,如何停止在文本字段中输入字符?

以编程方式选择输入字段中的部分文本

如何在 HTML/CSS 中的输入类型文本字段中添加图标? [复制]

停止输入/书写后如何触发输入文本中的事件?