ค้นหาเว็บไซต์

javascript - Angular 8 : (keyup.enter) ไม่ทำงานสำหรับ input html ที่เป็น readonly


ฉันกำลังพยายามเรียกใช้ฟังก์ชันเมื่อผู้ใช้กด Enter เหตุผลที่ฉันทำให้ช่องป้อนค่านี้เป็นแบบอ่านอย่างเดียวคือเพื่อจำกัดไม่ให้ผู้ใช้แก้ไขค่าที่ป้อนไว้เมื่อมีการใส่ค่าแล้ว

ค่ามาจากป๊อปอัพซึ่งจะถูกเรียกใช้งานในแอตทริบิวต์คลิก ปัญหาคือ keyup.enter ไม่ถูกเรียกใช้งานสำหรับอินพุตนั้น

ด้านล่างนี้คือโค้ด:

<input type="text" [(ngModel)]="display.name"
  (click)="openProfile()" (keyup.enter)="submitProfile()" readonly
/>

<button (click)="submitProfile()" type="submit">
  Submit
</button>

คำตอบ #1

คุณสามารถตั้งค่าคุณสมบัติได้:

[readonly]="isValuePapulated"

หรือ

[disabled]="isValuePapulated"

หรือใช้เฉพาะ:

[ngModel]="display.name"
(ngModelChanged)=onModelChanged($event)
// in component:
public onModelChanged(value: any): void {
    if (isValuePapulated) {
       return;
    }

   this.display.name = value;
}