2017-04-05 68 views
0

我試圖調用一個函數來檢測瀏覽器是否自動填充了一個字段,如果是的話,向它添加一個類。如果瀏覽器自動填充輸入字段,調用一個函數

我發現,工程部分的解決方案線程: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'); 
}); 

任何想法如何得到這個工作?

編輯:想我會添加圖像,以澄清什麼,我指的是:

enter image description here

回答

0

所以實際上被證明是一個非常簡單的解決方案 - 它可能不適合所有工作瀏覽器,但它完美地適用於Chrome/Firefox/Safari的最新版本,對於這個應用程序來說很好。

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