2017-04-05 8 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'); 
}); 

任意のアイデアこの作業を取得する方法?

EDIT: - そしてそれはすべてのために動作しない場合がありますので、これは実際には非常にシンプルなソリューションであることが判明し

enter image description here

答えて

0

:私は、私が参照してるものを明確にするために画像を追加しようと思いましたこれはChrome/Firefox/Safari最新版のために完璧に動作しますが、このアプリケーションでは問題ありません。

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