Angular中类型是number的input的value问题

在Angular7中使用type=number 的input,并用ngModel去绑定input的值。但是发现当输入小数点符号或者输入负号符的时候,ngModel获取的值和显示的并不一致。

html code:

<div style="width: 200px; height: 34px; margin: 20px auto; ">
    <input id="test" #eidtWeightInput 
    style="background-color: lightgoldenrodyellow;"
    class="a-text-input" value="99" type="number" minNum="0" maxNum="100" 
    [(ngModel)]="num" (ngModelChange)="optimizeCheckLogic2()" />
</div>

ts code:

 
  
  private num: string;
  @ViewChild('eidtWeightInput')
  private eidtWeightInput: ElementRef;
  ............

optimizeCheckLogic2() { console.log('[ngModel] this.num = ' + this.num); // ngModel console.log('jquery value=' + $('#test').val()); // jquery console.log('nativeElement.value = ' + this.eidtWeightInput.nativeElement.value); // nativeElement }

结果:

输入 1-

 

输入 1-1

输入 1.

 

由上面的实例可见:

针对type=number的input, 只要输入的数字是不合法的,那么input对应的value就是null;但是显示的内容依旧是输入的内容。

转载于:https://www.cnblogs.com/juliazhang/p/11218499.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值