我有一个输入,用户将输入货币值,所以我使用ng2-currency-mask来促进。但是,我还需要将此输入设置为只读。添加readonly属性并没有解决我的问题,因为当您单击输入并键入时,值会更改。以下是代码段:
<div class="ui-g-12 ui-md-6 ui-fluid">
<label for="inputValor" id="labelValor">Valor unitário</label>
<input id="inputValor" name="inputValor" type="text" currencyMask pInputText required ng-focus="false" [options]="{allowNegative: false, decimal: ',', prefix: 'R$ ', thousands: '.'}" [readonly]="true" [(ngModel)]="alteracoes.produto.valor">
</div>
有任何想法解决这个问题的人吗?
答案 0 :(得分:0)
如果您可以控制readonly值,请尝试这样的事情。
您的输入标记
<input id="inputValor" name="inputValor" type="text" currencyMask pInputText required ng-focus="false" [options]="{allowNegative: false, decimal: ',', prefix: 'R$ ', thousands: '.'}" [readonly]="readOnly" (keydown)="onKeyDown($event)" [(ngModel)]="alteracoes.produto.valor">
在你的ts:
public readOnly: boolean;
onKeyDown(event: any): void {
if (this.readOnly) {
event.preventDefault();
}
}