【问题标题】:Call a function if browser autofills an input field如果浏览器自动填充输入字段,则调用函数
【发布时间】:2017-04-08 01:20:57
【问题描述】:

我正在尝试调用一个函数来检测浏览器是否已自动填充字段,如果是,则向其中添加一个类。

我找到了一个部分解决方案的线程:https://stackoverflow.com/a/25393087

这是我的整合:

$.fn.allchange = function (callback) {
    var me = this;
    var last = "";
    var infunc = function () {
        var text = $(me).val();
        if (text != last) {
            last = text;
            callback();
        }
        setTimeout(infunc, 10);
    }
    setTimeout(infunc, 10);
};

$(".input").allchange(function () {
    $('.input').addClass('not--empty');
});

我遇到的问题是我还有一个函数可以检查模糊输入的变化,并为该输入添加一个类。但是,上述函数导致它被添加到“.input”的所有实例中。

我认为解决方案是仅在自动填充元素上调用该函数,但是当我运行下面的函数时,它不起作用:

$(".input").allchange(function () {
    $(this).addClass('not--empty');
});

任何想法如何让它工作?

编辑:我想我会添加一张图片来澄清我所指的内容:

【问题讨论】:

    标签: javascript jquery html autocomplete callback


    【解决方案1】:

    所以这实际上是一个非常简单的解决方案——它可能不适用于所有浏览器,但它适用于最新的 Chrome/Firefox/Safari,这对这个应用程序来说很好。

    setTimeout(function() {
        $('.input:-webkit-autofill').each(function() {
            var elem = $(this);
            $(elem).addClass('not--empty');
        })
    },100);
    

    【讨论】:

      猜你喜欢
      • 2021-02-25
      • 2020-07-26
      • 2020-11-11
      • 2021-08-30
      • 2017-08-22
      • 1970-01-01
      • 2013-04-04
      • 2021-11-10
      • 2018-12-04
      相关资源
      最近更新 更多