javascript - 如何在Angular 7的数字类型输入字段中添加/限制2个小数.00
问题描述
Angular 7 - 我正在尝试将 .00 添加到输入字段,该字段仅限于接受数字并且效果很好,但是,我希望能够尽快在同一个可编辑输入字段中添加 .00当用户导航到表单中的不同字段时。我添加了管道,[(ngModel)]="appform.budgetvalue | number: '1.2-2'"
但无法加载。我已经添加(change)="addDecimal($event)"
到接近尾声但该方法无法触发,一些stackoverflow文章建议创建一个自定义指令但不确定这是否是正确的方法,根据下面的代码片段可以请一些建议一种方法,任何帮助都会非常高赞赏。
<div class="col-md-8">
<div class="form-group col-lg-6"
<div class="input-group">
<span class="input-group-addon">$</span>
<input name="budgetvalue" class="form-control" required digitOnly
decimal="true" decimalSeparator="." decimalDigitLimit="2" placeholder="0.00"
pattern="[0-9]+([.][0-9]+)?" isValidMoney
[(ngModel)]="appform.budgetvalue" #budgetvalue="ngModel">
</div>
<div *ngIf="(budgetvalue.touched)">
<div *ngIf="!budgetvalue?.valid">
<small class="text-danger">Please provide valid budget amount</small>
</div>
</div>
解决方案
我能想到的几种方法:
<input name="" ... (blur)="transform()" />
...
import { Component } from '@angular/core';
import { DecimalPipe } from '@angular/common';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
name = 'Angular';
constructor(private decimalPipe: DecimalPipe) {}
decimal = "0";
transform() {
this.decimal = this.decimalPipe.transform(this.decimal, '1.2-2');
}
}
一个警告是转换管道返回一个字符串。我已经写了这个指令,我过去用过响应式表单,或者这个指令用于模板
<input [value]="appform.budgetvalue | number: '1.2-2'"/>
- 然而,这可能不会按您期望的方式工作,但可能会给您一些想法
推荐阅读
- sas - 通过格式 SAS 传递多个变量
- javascript - 输入值从 VueJS 更改时未触发 JQuery 更改事件
- java - 将 MultiValueMap 参数作为 http 链接键值值发送
- python - 有人可以验证我的代码是否符合 python 和面向对象的编程“标准”吗?
- c# - MVC 方法接收空值
- postgresql - 错误:[WinError 206] 文件名或扩展名太长
- c++ - 在两个函数之间选择一个重载函数,这两个函数都有一个数组引用类型的参数
- symfony - Symfony 5,测试条带时得到 403
- codeigniter - Wesite没有在vps上实时更新
- macos - 简单的 Apple 脚本在 Catalina 下工作,在 M1 MBA 的 Big Sur 下不起作用