Angular2删除<input type =“number”/>的无效输入?

时间:2017-07-10 14:42:54

标签: angular angular2-forms

看到这个plunkr: https://plnkr.co/edit/nGKAnXrrzgKSxpkdvEhX?p=preview

我在Angular中有一个显示<form>字段的简单<input type="number">

当我输入类似&#34; 123&#34;一切都好。

但输入&#34; 123-456&#34;似乎也没关系,虽然这不是真正的&#34;数。我发现Angular将myNumber.value设置为null,所以一切似乎都没问题。

我想要实现的是Angular不会将输入"123-456"重置为null,而是告诉我输入无效。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以删除type="number"添加一个只允许数字和-键的简单函数。

<input formControlName="myNumber" #myNumber (keydown)=onlyNumberKey($event)><br>

onlyNumberKey(event){
        let charCode = (event.query) ? event.query : event.keyCode;
        console.log(charCode);
            if (charCode != 189 && charCode > 31
                && (charCode < 48 || charCode > 57))
                return false;
            return true;
    }

Plunker