【问题标题】:Angular 6 input type number dot/commaAngular 6 输入类型数字点/逗号
【发布时间】:2018-11-13 13:05:03
【问题描述】:

我正在尝试将十进制值绑定到我的模型

<input type="number" id="newPlatePrice"
                           step = "0.01" min = "0"
                           size = 40
                           required
                           name="price"
                           [(ngModel)]="newPlate.price"
                           #newPlatePriceInput="ngModel"
                           (ngModelChange)="replaceDecimal($event)" />

在我的模型中,newPlate.price 是一个数字。

如果在输入框中,我用逗号插入一个值(11,11),一切正常。问题是,如果我使用点 (11.11) 插入一个数字,与 newPlate.price 的绑定就会中断。我正在寻找一种实时转换用户输入的方法,所以如果用户使用点插入十进制数字,我想立即将其转换为逗号。

有人有什么建议吗?

【问题讨论】:

    标签: javascript angular html angular6


    【解决方案1】:

    使用 keydown 事件检查点击了什么键:

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

    在 onKey 方法中检查 key 是否为点,如果是则将其转换为 coma。

    【讨论】:

    • 这是我最初的想法。我尝试将(keydown)="replaceDecimal($event)" 添加到输入标签中。问题在于实际上必须替换字符的功能。我试过这个:replaceDecimal(event: KeyboardEvent): void { if (event.key == ".") { event.key = ","; } } 但我有一个错误:“无法分配给键,因为它是一个只读属性”
    • @AamirKhan 那么解决方案是什么?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 2021-11-05
    • 2023-02-16
    • 2012-05-31
    • 2017-06-02
    • 2016-03-14
    相关资源
    最近更新 更多