我在iPad Pro上遇到此问题。
我有一个填写所有字段readonly
的表单,以防止自动填充/自动完成。
当用户单击输入字段时,我将删除readonly
属性,以便他可以编辑该字段。
下面是我在Angular 8中使用的指令,它可以在任何地方工作,但不在IPAD中。
如何在iPad上执行此操作?
import { Directive, ElementRef, HostListener, HostBinding } from '@angular/core';
@Directive({
selector: '[AutofillOff]'
})
export class AutofillOffDirective {
@HostBinding('attr.readonly')
readonly: boolean = true;
constructor(private el: ElementRef) { }
@HostListener('click') onClick() {
this.setEditable(this.el);
}
@HostListener('touchstart') onTouch() {
this.setEditable(this.el);
}
@HostListener('focus') onFocus() {
this.setEditable(this.el);
}
@HostListener('blur') onBlur() {
this.setReadonly(this.el);
}
setEditable(inputField) {
inputField.nativeElement.removeAttribute('readonly');
}
setReadonly(inputField) {
inputField.nativeElement.readOnly = true;
}
}