为什么只读输入不会在iPad上的Tab键按下时触发焦点事件?

时间:2020-01-28 08:31:54

标签: javascript html angular ipad input

我在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;
  }



}

0 个答案:

没有答案