我如何检测到用户已经通过使用浏览器填写了输入's自动完成

How can I detect that a user has filled an input by using a browser's autocomplete?

本文关键字:输入 浏览器 检测 何检测 用户      更新时间:2023-09-26

我目前有一个登录屏幕,在用户输入他们的账号和最后4个SSN之前,我会禁用登录按钮。只要用户手动输入这些信息,它就可以正常工作。然而,如果用户决定使用自动完成来填写表单,我会遇到一个问题,因为他们必须从输入字段中制表,以便注册输入已输入并启用登录按钮。

有没有一种方法可以在用户自动完成所有操作后立即自动启用登录按钮(假设数据正确)?这就是我目前所拥有的:

    $("input[type=text], input[type=password]").on("keyup", enableLogIn);
    $("input[type=text], input[type=password]").bind("paste", enableLogIn);
    function enableLogIn() {
        if ($("#AccountNumber").val().length < 6 || $("#SocialSecurityNumber").val().length < 4) {
            $("#loginButton").attr("disabled", true);
        } else {
            $("#loginButton").attr("disabled", false);
        }
    }

我认为在修改字段时会触发edit事件,而无需等待选项卡输出。还要注意,您可以将多个事件赋予.on

$("input[type=text], input[type=password]").on("keyup paste input", enableLogIn);

然而,这可能与浏览器有关,我不认为较旧的浏览器会发生这种情况。