【问题标题】:Passing single user input to detect number and letters通过单个用户输入来检测数字和字母
【发布时间】:2018-11-09 08:46:52
【问题描述】:

我有以下代码:

<div class="form-group">
 <label for="txtName">Name</label>
  <input type="text" pInputText class="form-control" id="txtName" 
         formControlName="name">
   <div *ngIf="!utenteform.controls['name'].valid && 
               utenteform.controls['name'].dirty" class="alert alert danger">
                 You can't skip this field
   </div>
</div>

我想要实现的是检测用户是在写字母还是数字,如果按下数字,则发出警报。

我找到了“ngKeyDown”事件,但我不明白如何使用它来将按下的每个按钮传递给一个检查输入内容的方法。

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    您的情况类似:stackblitz

    <input (keydown)="onKeydown($event)">
    

    onKeydown(event) {
      if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105)) {
        alert("input was number");
        event.preventDefault(); // prevent nubmers
      }
      if (event.keyCode >= 65 && event.keyCode <= 90) {
        alert("input was letter");
      }
     }
    

    【讨论】:

    • 嗨,请避免仅链接的答案。您可以将相关代码添加到您的答案中吗?
    • @user184994,这是我在链接中的答案,无论如何,更新的答案。
    • 我知道,但该链接可能不会永远存在。通过在您的问题中提供代码,这意味着答案仍然有用,即使该堆栈闪电战丢失了。
    • @selemmn 谢谢!这就是我想要的,但是,如果我不打扰你,我怎样才能删除按下的数字?我看到警报弹出,但数字仍插入文本框内。 (无论如何我接受你的回答,再次感谢你)
    • @selemmn Ahahahah 代码完美运行我只需要如何设置 onkeydown 事件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    相关资源
    最近更新 更多