2012-01-10 83 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

相關問題