【问题标题】:Capture "auto-suggest" event using JavaScript使用 JavaScript 捕获“自动建议”事件
【发布时间】:2013-12-14 10:50:23
【问题描述】:

我创建了一个不错的跨浏览器实用程序,它可以确保表单“占位符”的行为方式相同(包括没有实现它们的 IE)

但是,当用户填写表单并且浏览器为表单中的其余字段提供自动建议时,这会产生不同的问题,例如,对于注册表单:您可以输入您的姓名,然后浏览器将自动建议您的姓氏、电子邮件地址、邮政地址等...

我不在乎自动建议的值是什么,但我需要找到一种在每个字段上捕获“事件”的方法,以便我可以隐藏占位符的实现。

我查看了 Chrome 中的 DOM 元素,以查看自动建议值是否存储在自定义属性中,但未成功。

有没有其他人看到或经历过这种情况?有谁知道是否有可能捕捉到这样的事件?

注意:当用户接受自动建议时,此问题会消失,这会变成自动完成,在字段上触发更改事件;所以我只需要捕获建议事件

【问题讨论】:

    标签: javascript html autocomplete autosuggest


    【解决方案1】:

    我制作了以下脚本,当字段已被 Webkit 自动建议时“检测”:

    我假设任何使用它的人都知道 Underscore 和 jQuery。

    var $form = $('form'),
        autoCompleteSetting = $form.attr('autocomplete');
    
    if (_.isUndefined(autoCompleteSetting) || autoCompleteSetting === "on") {
        _($form.find('input')).each(function($input){
            setInterval(function() {
                if ($input.is(":-webkit-autofill")) {
                    // do your code here to detect the webkit autofill setting
                }
            }, 100);
        });  
    }
    

    我个人已将 webkit-autofill 检查放入三元运算符中。

    显然使用风险自负;每毫秒为页面上的每个字段运行这些间隔可能会给某些用户带来问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 2012-02-06
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      相关资源
      最近更新 更多