Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak zavolat funkci po vyplnění přihlašovacích údajů prohlížečem?

Prohlížeče nevyvolávají žádné události (input, change, keyup…), když automaticky doplní uložené přihlašovací údaje. Proto se tvoje funkce updateLoginButtonState() nespustí.

Nejjednodušší a spolehlivé řešení je spustit kontrolu po načtení stránky pomocí requestAnimationFrame() nebo setTimeout(), protože autofill proběhne až po vykreslení DOMu.

Zkus například: document.addEventListener("DOMContentLoaded", () => {
// Počkej, až prohlížeč doplní autofill
requestAnimationFrame(() => {
requestAnimationFrame(() => {
updateLoginButtonState();
});
});
});

Nebo jednoduše:

window.addEventListener("load", () => {
updateLoginButtonState();
});

Událost load se spouští později než DOMContentLoaded, takže už většinou obsahuje autofill hodnoty.

Pokud používáš <input autocomplete="on">, můžeš také poslouchat událost:

usernameInput.addEventListener("change", updateLoginButtonState);
passwordInput.addEventListener("change", updateLoginButtonState);

Ale nejspolehlivější je opravdu kontrola po load.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny