jquery - 使用 Jquery 检测 Chrome 保存的输入信息?

标签 jquery google-chrome html-input

我正在使用 jquery 在输入上开发占位符文本,当输入获得焦点时,占位符文本会稍微淡出,并在用户键入时完全消失。这部分工作正常。因此,为了避免与保存的文本发生冲突,我将代码包装在:

if(!$($input).val()) {

...create placeholder, set up rules for fading it, etc...

}

如果用户保存了密码,例如在 Firefox 中,浏览器将检测到输入有值,然后不会创建占位符文本。

但是,在 Chrome 中,Chrome 直到页面“完成”加载后才会加载保存的值...这意味着它检测到输入为空,创建占位符文本,然后在页面加载后,将保存的值放在输入中 - 导致占位符和密码相互重叠。

如何检测 Chrome 正在填写表单以避免这种不幸的重叠?

最佳答案

最后,我注意到 Chrome 在自动填充时不会触发任何类型的事件,但是如果您等到 window.load 然后检查是否有任何输入具有 -webkit-autofill ,您就可以检查它们。正如你所看到的,我还使用了一个去抖器(Ben Alman - http://benalman.com/projects/jquery-throttle-debounce-plugin/)再等待 200 毫秒,因为即使在 window.load 之后,它有时还没有输入自动填充文本......

$(window).load($.debounce(200, function () {

       if ($('input:-webkit-autofill')) {

           // We know that this form has autofill on its way. Let's check this again after a delay as its not always done on window.load

           $('input:-webkit-autofill').each(function () {

               if ($(this).val() !== "") {
                   $(this).parent().find('label').hide();
               }

           });

       }

    }));

关于jquery - 使用 Jquery 检测 Chrome 保存的输入信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7749689/

相关文章:

javascript - Chrome 的 captureVisibleTab 没有扩展

javascript - 输入键在搜索框中不起作用

javascript - 移动版 Safari : Javascript focus() method on inputfield only works with click?

javascript - 在 Highchart 图例中,想要在开始时带上复选框

javascript - 有人可以帮我更改 Chrome 版 Google 词典扩展程序的不透明度吗?

css - 在 Chrome 中使用转换抽动进行转换

javascript - jQuery/javascript 在列表中查找值

javascript - 如何使用 ngModel 在 angularjs 指令中手动重新运行格式化程序链?

javascript - 尝试使用循环将数组中的所有项目放入文本输入数据列表中

javascript - 当需要 "select"或 "input"时验证表单