2012-01-10 56 views
0

我有这样的JavaScript代码:这段代码为什么不能一直工作?

if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) 
{ 
    $(window).load(function() 
    { 
      $('input:-webkit-autofill').each(function() 
      { 
       var text = $(this).val(); 
       var name = $(this).attr('name'); 
       $(this).after(this.outerHTML).remove(); 
       $('input[name=' + name + ']').val(text); 
      }); 
    }); 
} 

它被设计成在除去输入的webkit的自动填充的背景颜色的背景颜色。

但是,它只能运行有时,并且当我点击一个输入或在页面加载的同时执行jQuery异步函数的按钮时,它不起作用。

这段代码有什么问题,使得它有时无法工作,但在其他时间工作?我必须适应什么?

这是我在做什么:How do you disable browser Autocomplete on web form field/input tag?

但我想继续自动完成,同时去除背景。我需要这个,因为背景在我的文本输入中超过背景图像,所以你看不到它。

+0

它为什么会点击一下?它在onload上执行一次,并且您处于DOM呈现的摆布状态。考虑$(function(){})和事件处理程序? – 2012-01-10 21:40:44

+0

'input:-webkit-autofill'对我来说看起来不是一个有效的选择器......它甚至会返回任何东西吗?你为什么只在寻找Chrome,你知道Safari也是一个webkit浏览器吗? – Mottie 2012-01-10 21:48:20

+0

@fudgey嗯,它是一个有效的webkit选择器,正如我所说的,它有时会起作用,我只在寻找chrome,因为它是唯一一个在自动完成任何事情时填充背景颜色的人。 – 2012-01-10 21:52:50

回答

0

这是你正在尝试? How do you disable browser Autocomplete on web form field/input tag?

如果不是 - 您是否确认所有元素都被选中,并且问题在于浏览器自动填充的时间?如果您使用更常见的$ .ready,会发生什么情况?

+0

这就是我正在做的。但我发现这是一种在不关闭自动完成功能的情况下保留文本的方法 – 2012-01-10 21:42:57

相关问题