javascript - 浏览器自动填充保存的凭据时如何在加载时设置焦点并移除焦点
问题描述
我在 angular6 中有一个简单的登录页面,我想在加载登录页面时将焦点设置为输入字段,如果浏览器自动填充保存的凭据,则删除焦点。
我正在使用简单的 javascript 将焦点设置在 ngOnInit() 上,document.getElementById("userName").focus();
这会在登录页面加载时将焦点设置为输入(用户名)字段,但如果浏览器自动填充保存的详细信息,我想移除焦点。我尝试使用(更改)事件捕获值,但它不起作用。
请对此进行指导
谢谢
解决方案
很少有浏览器实际上会在自动填充时触发输入更改事件。如果更改事件不起作用,请尝试将您的输入绑定到模型:
export class MyComponent {
login: string;
@ViewChild('loginInput') loginInput: ElementRef;
ngOnInit() {
this.loginInput.nativeElement.focus();
}
blurInput() {
this.loginInput.nativeElement.blur();
}
}
<input type="text" [ngModel]="login" (ngModelChange)="blurInput()" [ngModelOptions]="{ standalone: true }" #loginInput>
推荐阅读
- c - 在 C 中的链表实现中打印额外的 0 并且不删除前端节点
- aws-lambda - 使用 cdk not sam 在本地调试 lambda
- angular - Angular Loop 使用指令和访问模型值
- python - HDBSCAN 集群中的任何对象都不应该具有 > 0 的概率值吗?并产生不一致的结果
- php - PHP:如何修复这种类型提示错误?
- javascript - 管理 Angular 服务和组件之间的订阅
- python - 如何将用户输入与多个 OR 条件 PYTHON 3.x 进行比较
- python - Python数组寻找连续的最大子数组索引
- dns - GCloud 错误:我已将 A 类型的 DNS dinhonesto.com.br 和 www.dinhonesto.com.br 配置为外部 ip,但只有 dinhonesto.com.br 有效
- javascript - 滑块的填充影响固定顶栏