Angular 2 和浏览器自动填充

2024-03-25

我正在使用 Angular 反应式表单实现登录页面。如果表单无效,“登录”按钮将被禁用。

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';

@Component({
    selector: 'signin',
    templateUrl: './signin.component.html'
})
export class SignInComponent implements OnInit {
    private signInForm: FormGroup;

    constructor(private formBuilder: FormBuilder) { }

    ngOnInit() {
        this.buildForm();
    }

    private buildForm(): void {
        this.signInForm = this.formBuilder.group({
            userName: ['', [Validators.required, Validators.maxLength(50)]],
            password: ['', [Validators.required, Validators.maxLength(50)]]
        });

        this.signInForm.valueChanges
            .subscribe((data: any) => this.onValueChanged(data));

        this.onValueChanged();
    }

    private onValueChanged(data?: any) {
        console.log(data);
    }

因此,当我在浏览器中启动它时,我已预先填充字段“用户名”和“密码”。在控制台中我有值 '{ userName: "[电子邮件受保护] /cdn-cgi/l/email-protection", 密码: "" }' 结果按钮“登录”被禁用。但是如果我单击页面上的某个位置它会触发值改变时我看到'{ 用户名: ”[电子邮件受保护] /cdn-cgi/l/email-protection”,密码:“123456”}',并且“登录”按钮已启用。

如果我进入隐身模式。我没有预填充字段(它们是空的),但是当我填充(选择)值时,然后在控制台中我看到'{ 用户名: ”[电子邮件受保护] /cdn-cgi/l/email-protection”,密码:“123456”}',并且无需任何额外的点击即可启用“登录”按钮。

也许它们是不同的事件?自动填充和自动完成? Angular 与它们的工作方式不同吗?

解决这个问题的最佳方法是什么?以及为什么值改变时当浏览器自动填充字段时,函数仅执行一次?


Chrome 浏览器中的问题:自动填充后(用户点击页面之前)不允许访问密码字段的值。所以,有两种方法:

  1. 删除密码字段的验证;
  2. 禁用密码自动完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 和浏览器自动填充 的相关文章

随机推荐

  • 2D RPG 中的 XML、YAML 和 JSON [重复]

    这个问题在这里已经有答案了 我不知道对于 C 2D RPG 是否使用 XML YAML 或 JSON 这是我的想法 我需要一些简单的东西 不仅可以保存玩家数据 还可以保存环境数据 例如对象 x y 坐标 加载时间 日期 图形配置等 我需要一
  • 为什么 setLastModified(time) 对此文件不起作用?

    为什么下面代码中的文件日期没有改变 fLocal location C 中的现有文件 fLocal date 以长整型设置的日期 boolean x new File fLocal location setLastModified Long
  • 在 Ubuntu 中从 CSV 复制到 Postgres

    我的问题与此类似one https stackoverflow com q 14083311 1777654但在 Linux Mint 15 Ubuntu 中 我已经尝试过标准COPY http www postgresql org doc
  • Laravel:字符串数据,右截断:1406 数据对于列来说太长

    我有一张桌子 上面有一列 酒店 该项目是在 Laravel 5 4 中创建的 因此我使用了 Migrations table gt string hotel 50 这是 MYSQL VARCHAR 50 它运作良好 因为当我开发时 我使用了
  • Android 操作系统认为应用程序在调试期间处于断点时没有响应

    我不确定这是否是 Android studio 2 0 的问题 还是因为我正在开发的这个新应用程序中存在一些奇怪的项目设置 当我在调试期间停在断点处时 操作系统会向我显示一个对话框 指出应用程序没有响应 并让我选择等待或终止应用程序 然后过
  • 安全方法为无安全性,但不允许页面提取和文档组装

    我有一个非常奇怪的问题 我不确定问题出在哪里 我正在创建 PDF 但未设置任何安全限制或密码 当我在 Adob e Reader DC 中打开 PDF 并获取属性时 它确实将安全方法显示为 无安全 但是 文档组装和页面提取设置为不允许 PD
  • 即席查询和存储过程哪个更好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • btree是如何存储在光盘上的?

    我知道如何在内存中实现b树 但不清楚如何在光盘中存储trie 我认为主要有两点区别 内存指针和磁盘地址之间的转换 看这个 插入新的k v项时如何拆分页面 在内存中很容易实现 Thanks 这完全取决于您使用的 DBMS 如果您想知道它是如何
  • angular-cli 库创建辅助入口点

    我正在尝试创建我认为所谓的 Angular npm 包的辅助入口点 我想要以下两个入口点 scope data service scope data service models 使用 angular cli 生成基础包生成以下结构 sco
  • linq 中的简单选择查询

    假设我有一个学生表 我想显示 ID 为 1 的学生 SELECT FROM STUDENT ST WHERE ST ID 1 这就是我在 Linq 中实现这一目标的方法 StudentQuery from r in oStudentData
  • VBA - 冒号“:”如何在带有条件的 VBA 代码中工作

    冒号运算符 是VBA中的语句分隔符 但是 有谁知道为什么前三个示例有效而第四个示例 未注释时 会产生错误 Option Explicit Public Sub TestMe If 1 1 Then Debug Print 1 If 2 2
  • 如何将 .txt 读入 Python 对象列表?

    我正在尝试使用 Python 制作纸牌游戏 下面有这个文本文件 其中包括卡 ID 卡名称 卡描述和卡生命值 1 Medusa Feel The Wraith 98 2 Gigle See Him See Him 54 3 Brozi Pin
  • 使用 VLC imem 从内存播放 h264 视频文件但收到错误“主流错误:无法预填充缓冲区”

    我有一个加载到内存中的 h264 视频文件 我尝试使用参数 imem cat 4 使用 imem 播放它 以便 vlc 将使用访问模块来解复用视频 并且 vlc 启动并接收我的 imem参数成功 0x7f38a0000e28 access
  • 如何使用Protocol-buffer在Java中反序列化文件?

    想要在 C 中创建序列化文件 然后想在 Java 中反序列化该文件 为此 我正在使用 Protocol buffer 库 我想要做的是 在 C 中 我添加了 protobuf net dll 要序列化的类表示为 人物 cs ProtoBuf
  • 在 Android 中禁用 Spinner

    我在使用时遇到问题android enabled false 它不是禁用 the 成分在这种情况下 它是spinner 不知道它是否相关 但它属于布局的一部分viewflipper 有任何提示或解决方法吗 Thanks 在设置适配器之前禁用
  • 反转 Map 最简洁的 Scala 方法是什么?

    反转 Map 最简洁的 Scala 方法是什么 映射可能包含非唯一值 EDIT 的逆转Map A B 应该给Map B Set A 或者 MultiMap 那就更好了 如果您可能丢失重复的密钥 scala gt val map Map 1
  • 如何使用代理设置部署 Angular 应用程序

    我有一个代理配置文件 其中有 API 网络服务 链接到目标以调用我们的数据库 此代理配置在本地使用正常工作npm 启动 现在我需要将此应用程序部署到 IIS 上的生产 Windows 服务器 我用了ng build and ng 构建 pr
  • 如何使用 CruiseControl.Net 构建忽略可执行文件的输出?

    我正在运行一个名为 fart exe 的小型查找和替换实用程序 是的 是放屁 如 查找和替换文本 中所示 作为我的 CC 构建的一部分 效果很好 问题是 FART 在工作时会显示一个由管道 破折号 斜线组成的小 ASCII 旋转器 没有办法
  • LINQ Join On Between 子句

    我在组合 LINQ 查询 将根据邮政编码连接表 时遇到一些问题 我需要根据客户的邮政编码是否位于由 ZIPBEG 和 ZIPEND 列确定的邮政编码范围内来加入表 T SQL 看起来像这样 JOIN ZipCodeTable zips ON
  • Angular 2 和浏览器自动填充

    我正在使用 Angular 反应式表单实现登录页面 如果表单无效 登录 按钮将被禁用 import Component OnInit from angular core import FormBuilder FormGroup Valida