autofillによる入力値であるかの判定
autofillによる入力値であるかの判定:
フォームの入力値がブラウザのautofill機能によるものかは、フォームが
Firefoxの場合は
フォームの入力値がブラウザのautofill機能によるものかは、フォームが
:-webkit-autofillセレクタを持っているかで判定できる。Firefoxの場合は
:-webkit-autofillセレクタを取得できないが、autofill時に発生するinputイベントにdetailプロパティ(マウスイベント、キーイベントの場合のみ含まれている)が存在するかで判定できる。function hasAutofill(input, detail) {
var isAutofilled = false;
try {
isAutofilled = Boolean(input.parentNode.querySelector(':-webkit-autofill'));
} catch (e) {
// firefoxはautofillセレクタが取得できないので、detailプロパティ(マウスイベント、キーイベントの場合のみ含まれている)が存在するかで判定する
isAutofilled = Boolean(detail === 'undefined');
}
return isAutofilled;
}
function onInput(e) {
var detail = typeof e.detail;
console.log(hasAutofill(e.target, detail));
}
コメント
コメントを投稿