2016-11-24 50 views
14

我有一個包含電子郵件和密碼字段的登錄表單。Angular 2 - 表單在瀏覽器自動填寫時無效

我選擇了瀏覽器自動填充功能。

問題是:當瀏覽器自動填寫登錄表單時,這兩個字段都是原始的和未觸摸的,因此提交按鈕被禁用。

如果我點擊禁用的按鈕,它啓用並觸發提交動作,什麼是好的。但是,默認的禁用方面是非常糟糕的,可能會讓一些用戶感到失望。

你對如何處理有一些想法嗎?

+0

使用<input ... required ...>指令的標籤是你能解決這個問題? – JohnDizzle

+0

@JohnDizzle:你們是否能夠得到它的工作?如果是,那麼如何? :) – Denish

+0

@丹尼不,我必須讓你失望。這似乎是社區中每個人都面臨的一個公開問題...... – JohnDizzle

回答

0

也有同樣的問題。我不知道這是否是最好的方式,但我能得到它通過添加AfterViewChecked工作

import { Component, AfterViewChecked } from "@angular/core"; 

export class LoginComponent implements AfterViewChecked { 
    // Beware! Called frequently! 
    // Called in every change detection cycle anywhere on the page 
    ngAfterViewChecked() { 
     console.log(`AfterViewChecked`); 
     if (this.usr.userName) { 
      // enable to button here. 
      console.log("found username in AfterViewChecked"); 
     } 
    } 
} 

,或者你也許可以嘗試Angular2的其他生命週期掛鉤 https://embed.plnkr.co/?show=preview

+0

這將啓用該按鈕,但表單本身仍然無效,因此提交不會通過。 – Euridice01

+0

這不是一個好的解決方案 – SherlockStd

0

我一樣的問題。

我解決了它的: - 組件 去除Validators.required驗證的密碼字段 - 模板

相關問題