Отменить заполнение форм и выделение ввода в браузере с помощью HTML / CSS

У меня есть 2 основные формы - войти и зарегистрироваться, обе на одной странице. Теперь у меня нет проблем с автозаполнением формы входа, , но форма регистрации тоже заполняется автоматически, и мне это не нравится.

Кроме того, стили формы имеют желтый фон, который мне не удается переопределить, и я не хочу использовать для этого встроенный CSS. Что я могу сделать, чтобы они перестали окрашиваться в желтый цвет и (возможно) автозаполнение? Заранее спасибо!


person casraf    schedule 25.02.2010    source источник
comment
Вы действительно задаете здесь два вопроса: как отключить автозаполнение форм? -И- Как переопределить желтый фон при включенном автозаполнении формы? Это было непонятно, пока я не прочитал все комментарии в ответах ниже. Возможно, вы захотите отредактировать свой вопрос (тем более, что вы зашли так далеко, что предложили награду).   -  person benzado    schedule 07.03.2010
comment
Вы правы, отредактировали. Или в любом случае его ленивая версия.   -  person casraf    schedule 07.03.2010
comment
Как пользователь формы, я бы не хотел, чтобы мое удобство использования было ограничено из-за ваших визуальных предпочтений из-за принудительного автозаполнения и отключения выделения. Позвольте пользователю выключить это, а не вам. Оставьте мой опыт просмотра в покое.   -  person Byran Zaugg    schedule 09.03.2010
comment
В том-то и дело, что я отключил автозаполнение только в форме РЕГИСТРАЦИИ, которая, по сути, не должна иметь обычного автозаполнения, информация о завершении создается только после того, как вы зарегистрировались. Что касается формы входа, я хочу оставить автозаполнение включенным, но просто отключите тупой цвет, который он помещает в поля ввода, потому что текст внутри становится нечитаемым - фон желтый, а цвет текста белый (исходный фон темно-серый) .   -  person casraf    schedule 10.03.2010
comment
возможный дубликат ​​автозаполнения формы Google Chrome и его желтый фон   -  person zzzzBov    schedule 10.01.2013
comment
@zzzzBov проверьте даты, похоже, ваша ссылка дублирует мою.   -  person casraf    schedule 12.02.2013
comment
@OhMrBigshot, хотя дубликаты обычно разрешаются в пользу более старого вопроса, также существует тенденция разрешать в пользу вопроса с большим количеством голосов или лучшими ответами. Хотя ваш, очевидно, хороший вопрос, связанный вопрос набрал больше голосов (люди сказали: изображения ›слова), и я считаю, что ответы лучше.   -  person zzzzBov    schedule 13.02.2013
comment
С учетом всего сказанного, я не возражаю, если вам удастся закрыть другой вопрос как дубликат вашего.   -  person zzzzBov    schedule 13.02.2013
comment
Мне очень жаль, что Google не выбрал менее изможденный цвет, чем желтый, в качестве цвета фона по умолчанию.   -  person Pixelomo    schedule 12.02.2015
comment
codepen.io/richardos/pen/RoBdxv   -  person    schedule 11.12.2016


Ответы (25)


для автозаполнения вы можете использовать:

<form autocomplete="off">

относительно проблемы окраски:

из вашего скриншота видно, что webkit генерирует следующий стиль:

input:-webkit-autofill {
    background-color: #FAFFBD !important;
}

1) поскольку # id-styles даже более важны, чем стили .class, следующее может работать:

#inputId:-webkit-autofill {
    background-color: white !important;
}

2) если это не сработает, вы можете попробовать установить стиль через javascript программно

$("input[type='text']").bind('focus', function() {
   $(this).css('background-color', 'white');
});

3) если это не сработает, вы обречены :-) учтите: это не скроет желтый цвет, но сделает текст снова читаемым.

input:-webkit-autofill {
        color: #2a2a2a !important; 
    }

4) решение css / javascript:

css:

input:focus {
    background-position: 0 0;
}

и следующий javascript должен быть запущен при загрузке:

function loadPage()
{
    if (document.login)//if the form login exists, focus:
    {
        document.login.name.focus();//the username input
        document.login.pass.focus();//the password input
        document.login.login.focus();//the login button (submitbutton)
    }
}

eg:

<body onload="loadPage();">

удачи :-)

5) Если ничего из вышеперечисленного не помогло, попробуйте удалить элементы ввода, клонировать их, а затем снова разместить клонированные элементы на странице (работает в Safari 6.0.3):

<script>
function loadPage(){

    var e = document.getElementById('id_email');
    var ep = e.parentNode;
    ep.removeChild(e);
    var e2 = e.cloneNode();
    ep.appendChild(e2);

    var p = document.getElementById('id_password');
    var pp = p.parentNode;
    pp.removeChild(p);
    var p2 = p.cloneNode();
    pp.appendChild(p2);
}

document.body.onload = loadPage;
</script>

6) Из здесь:

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);
        });
    });
}
person Phil Rykoff    schedule 10.03.2010
comment
(1) не работает. Я попробую (2) когда вернусь домой; надеюсь, JS сможет это преодолеть; Благодарность :) - person casraf; 11.03.2010
comment
(4) определенно удаляет желтый цвет: граница фокуса. - person ruruskyi; 16.08.2012
comment
Если последний бит не работает для вас, и вы знаете, как работает javascript (получил правильный идентификатор и т. Д.), У вас может быть проблема, которая у меня была, я использую jquery mobile по некоторым причинам, и это происходит позже и заменяет входы похоже, что это. Итак, я установил интервал, который клонирует его каждые 50 мс (он работал через 400 мс с использованием setTimeout, но я не хочу рисковать медленными соединениями). И через секунду интервал удаляется: code - person Mathijs Segers; 09.08.2013
comment
У меня аналогичная проблема с Safari на Mavericks. Но когда я использую метод 5, они выключают его в течение одной секунды (или трех секунд, когда я устанавливаю тайм-аут на 3000), а затем браузер выигрывает, и у меня включается автозаполнение. В моем случае использования я прошу пользователя указать его имя пользователя / пароль для другого сайта, чтобы я мог получать информацию с другого сайта, поэтому я определенно не хочу, чтобы он автоматически заполнял имя пользователя и пароль, которые они используют для моего сайта. Есть какие-нибудь мысли по этому поводу (кроме гибели оригинального №3)? - person Jack R-G; 03.05.2014
comment
как насчет использования .autofill-fix? - person Zaffer; 28.06.2021

Обмани его с помощью "сильной" внутренней тени:

input:-webkit-autofill {
    -webkit-box-shadow:0 0 0 50px white inset; /* Change the color to your own background color */
    -webkit-text-fill-color: #333;
}

input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 50px white inset;/*your box-shadow*/
    -webkit-text-fill-color: #333;
} 
person Tamás Pap    schedule 13.12.2012
comment
+1000 (если бы я мог) Да, я не могу придумать другого способа сделать это. Это действительно навязчиво для webkit ... - person o_O; 14.10.2013
comment
Это совершенно потрясающее, очень креативное решение + allthepoints - person Eric Bieller; 16.05.2014
comment
круто, это должен быть ответ номер один, простой и эффективный - person Pixelomo; 12.02.2015
comment
Очень умно! Хорошо работает в Chrome. - person masgrimes; 28.04.2015
comment
не работает для фона, если я хочу его удалить (прозрачный) - person Attenzione; 28.05.2015
comment
Это единственный способ изменить цвет текста в Chrome (по крайней мере, в версии 43). - person Arturo Torres Sánchez; 24.06.2015
comment
Это круто тем, что работает, и действительно креативно. Но это напоминает мне старые хаки IE6 и тому подобное. Какое-то дерьмо со стороны Google, когда он дает нам параметр: -webkit-autofill и не позволяет дизайнерам отменять значение по умолчанию, верно? - person squarecandy; 10.03.2016
comment
Этот желтый фон предназначен для того, чтобы помочь пользователям знать, что эти значения фактически хранятся в браузере. Возможно, вам это не понравится, но удаление его с сохранением поведения на самом деле снижает удобство использования и доступность. - person neiya; 20.11.2019
comment
Предоставление выбора цвета, который нельзя настроить, не способствует удобству использования и доступности. Эти проблемы по-прежнему полностью в руках разработчика, за исключением этого неприятного взлома в Chrome. Никто не может винить намерения разработчиков Chrome, только результаты. - person Lunster; 07.01.2020

Добавьте это правило CSS, и желтый цвет фона исчезнет. :)

input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0px 1000px white inset;
}
person MCBL    schedule 17.10.2013
comment
У меня это сработало - спасибо! (хотя мне нужно было изменить белый цвет на тот, который я действительно хотел) - person jennEDVT; 05.07.2016
comment
Ясно лучший ответ. - person Brandon Harris; 24.01.2017

После 2 часов поиска кажется, что Google Chrome все еще каким-то образом отменяет желтый цвет, но я нашел исправление. Он также будет работать для наведения, фокусировки и т. Д. Все, что вам нужно сделать, это добавить к нему !important.

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0px 1000px white inset !important;
}

это полностью удалит желтый цвет из полей ввода

person don    schedule 03.11.2016
comment
У меня это работает без 1000 пикселей, везде 0, -webkit-box-shadow: 0 0 0 0 белая вставка! Important; - person Luis Lopez; 15.06.2017

<form autocomplete="off">

Практически все современные браузеры это уважают.

person Jason Kester    schedule 25.02.2010
comment
Замечательно, но это решает только менее важную проблему; как я могу сохранить автозаполнение, но потерять стиль (prntscr.com/4hkh), который вебкит запихивает себе в глотку? о: хотя спасибо - person casraf; 26.02.2010
comment
На самом деле он должен делать и то, и другое. Поле становится желтым только для того, чтобы вы знали, что chrome / safari / ff автоматически заполнил его вашим паролем. Если вы скажете, чтобы он не заливался, он не сможет его раскрасить. - person Jason Kester; 26.02.2010
comment
да, но посмотри на то, что я сказал: как я могу сохранить автозаполнение, но потерять стиль, когда webkit выталкивает - person casraf; 26.02.2010
comment
Единственная проблема с autocomplete в том, что он недопустим в HTML до версии 5. - person Paul D. Waite; 05.03.2010

Кажется, это работает для меня:

input {
  -webkit-background-clip: text !important;
}

person Kerry7777    schedule 02.10.2020
comment
Это единственное решение, если вы хотите иметь прозрачный фон. - person Louis Sankey; 06.02.2021
comment
@ Kerry7777 Это единственное решение, сработавшее для меня. И самый простой. Вы сделали мой день - person Kavindu Pasan Kavithilaka; 15.07.2021

Вы также можете изменить атрибут name ваших элементов формы, чтобы он создавался так, чтобы браузер не отслеживал его. ОДНАКО firefox 2.x + и google chrome, похоже, не имеют особых проблем с этим, если URL-адрес запроса идентичен. Попробуйте просто добавить параметр запроса соли и имя поля соли для формы регистрации.

Однако я думаю, что autocomplete = "off" по-прежнему остается лучшим решением :)

person Dmitriy Likhten    schedule 25.02.2010

Вы можете отключить автозаполнение в HTML5 (через autocomplete="off"), но НЕ МОЖЕТЕ переопределить выделение в браузере. Вы можете попробовать использовать ::selection в CSS (для работы большинства браузеров требуется префикс поставщика), но это, вероятно, вам тоже не поможет.

Если поставщик браузера специально не реализовал зависящий от поставщика способ его переопределения, вы ничего не сможете сделать с такими стилями, которые уже предназначены для переопределения таблицы стилей сайта для пользователя. Обычно они применяются после применения ваших таблиц стилей и также игнорируют ! important переопределения.

person Alan Plum    schedule 06.03.2010

Иногда автозаполнение в браузере по-прежнему выполняется автоматически, если у вас есть только код в элементе <form>.

Я также пробовал поместить его в элемент <input>, и он работал лучше.

<form autocomplete="off">  AND  <input autocomplete="off">

Однако поддержка этого атрибута прекращается, прочтите https://bugzilla.mozilla.org/show_bug.cgi?id=956906#c1

https://bugzilla.mozilla.org/show_bug.cgi?id=956906


Еще одна работа, которую я обнаружил, - это удаление заполнителей внутри полей ввода, которые предполагают, что это адрес электронной почты, имя пользователя или поле телефона (например, «Ваша электронная почта», «Электронная почта» и т. Д.)

введите описание изображения здесь

Это делает так, что браузеры не знают, что это за поле, и поэтому не пытаются выполнять его автозаполнение.

person andstud.io    schedule 30.07.2014
comment
Что мне нравится в этом, так это то, что большинство людей НЕ БУДУТ ценить, что форма не заполняется при перезагрузке страницы (например, длинная текстовая область), но позволяет разработчику предотвратить заполнение определенных элементов (например, номера банковской карты). К сожалению, поддержка этого атрибута прекращается. - person Luke Madhanga; 14.08.2014

Если он находится в поле ввода, вы пытаетесь "убрать желтый" ...

  1. Установите цвет фона с помощью css ... скажем, #ccc (светло-серый).
  2. Добавьте значение = "sometext", которое временно заполняет поле "sometext".
  3. (необязательно) Добавьте немного JavaScript, чтобы прояснить «некоторый текст», когда вы собираетесь ввести настоящий текст.

Итак, это может выглядеть так:

<input id="login" style="background-color: #ccc;" value="username"
    onblur="if(this.value=='') this.value='username';" 
    onfocus="if(this.value=='username') this.value='';" />
person whitehorse    schedule 28.01.2011

Это устраняет проблему как в Safari, так и в Chrome.

if(navigator.userAgent.toLowerCase().indexOf("chrome") >= 0 || navigator.userAgent.toLowerCase().indexOf("safari") >= 0){
window.setInterval(function(){
    $('input:-webkit-autofill').each(function(){
        var clone = $(this).clone(true, true);
        $(this).after(clone).remove();
    });
}, 20);
}
person Arjan    schedule 18.01.2013
comment
Я верю, что так и будет, но не будет ли жестко делать это 50 раз в секунду? Я знаю, что это сработает и не будет слишком медленным. Но кажется многовато. - person Mathijs Segers; 09.08.2013

На скриншоте, на который вы ссылаетесь, говорится, что WebKit использует селектор input:-webkit-autofill для этих элементов. Вы пробовали поместить это в свой CSS?

input:-webkit-autofill {
    background-color: white !important;
}

Если это не сработает, то, вероятно, ничего не выйдет. Эти поля выделены, чтобы предупредить пользователя о том, что они были автоматически заполнены личной информацией (например, домашним адресом пользователя), и можно утверждать, что разрешение скрывать страницу создает угрозу безопасности.

person benzado    schedule 07.03.2010

Элемент form имеет атрибут autocomplete, который можно установить на off. Что касается CSS, директива !important после свойства предотвращает его переопределение:

background-color: white !important;

Только IE6 этого не понимает.

Если я вас неправильно понял, есть еще свойство outline, которое может вам пригодиться.

person zneak    schedule 07.03.2010
comment
Chrome, кажется, игнорирует! Important, когда он автоматически заполняет поля ввода - person Torandi; 25.01.2011
comment
@Torandi Это может быть из-за таблиц стилей пользовательского агента. Настройки из таблиц стилей пользовательского агента должны применяться последними, если для них нет директивы !important, и в этом случае он имеет приоритет над всем остальным. Вам следует проверить таблицу стилей пользовательского агента (хотя я не знаю, где ее найти). - person zneak; 26.01.2011

Я видел, как функция автозаполнения панели инструментов Google отключена с помощью javascript. Это может работать с некоторыми другими инструментами автозаполнения; Не знаю, поможет ли это с браузерами, в которых встроено автозаполнение.

<script type="text/javascript"><!--
  if(window.attachEvent)
    window.attachEvent("onload",setListeners);

  function setListeners(){
    inputList = document.getElementsByTagName("INPUT");
    for(i=0;i<inputList.length;i++){
      inputList[i].attachEvent("onpropertychange",restoreStyles);
      inputList[i].style.backgroundColor = "";
    }
    selectList = document.getElementsByTagName("SELECT");
    for(i=0;i<selectList.length;i++){
      selectList[i].attachEvent("onpropertychange",restoreStyles);
      selectList[i].style.backgroundColor = "";
    }
  }

  function restoreStyles(){
    if(event.srcElement.style.backgroundColor != "")
      event.srcElement.style.backgroundColor = "";
  }//-->
</script>
person Adam    schedule 11.03.2010

Попробовав много вещей, я нашел рабочие решения, которые уничтожили автозаполненные поля и заменили их дублированными. Чтобы не терять прикрепленные события, я придумал другое (немного длинное) решение.

При каждом событии «ввода» он быстро присоединяет события «изменения» ко всем задействованным вводам. Он проверяет, были ли они автозаполнены. Если да, то отправьте новое текстовое событие, которое заставит браузер думать, что значение было изменено пользователем, что позволит удалить желтый фон.

var initialFocusedElement = null
  , $inputs = $('input[type="text"]');

var removeAutofillStyle = function() {
  if($(this).is(':-webkit-autofill')) {
    var val = this.value;

    // Remove change event, we won't need it until next "input" event.
    $(this).off('change');

    // Dispatch a text event on the input field to trick the browser
    this.focus();
    event = document.createEvent('TextEvent');
    event.initTextEvent('textInput', true, true, window, '*');
    this.dispatchEvent(event);

    // Now the value has an asterisk appended, so restore it to the original
    this.value = val;

    // Always turn focus back to the element that received 
    // input that caused autofill
    initialFocusedElement.focus();
  }
};

var onChange = function() {
  // Testing if element has been autofilled doesn't 
  // work directly on change event.
  var self = this;
  setTimeout(function() {
    removeAutofillStyle.call(self);
  }, 1);
};

$inputs.on('input', function() {
  if(this === document.activeElement) {
    initialFocusedElement = this;

    // Autofilling will cause "change" event to be 
    // fired, so look for it
    $inputs.on('change', onChange);
  }
});
person Ernests Karlsons    schedule 03.12.2012

Простое решение javascript для всех браузеров:

setTimeout(function() {
    $(".parent input").each(function(){
        parent = $(this).parents(".parent");
        $(this).clone().appendTo(parent);   
        $(this).attr("id","").attr("name","").hide();
    }); 
}, 300 );

Клонировать ввод, сбросить атрибут и скрыть исходный ввод. Для iPad необходим тайм-аут

person Mite    schedule 25.04.2014

Поскольку браузер ищет поля типа пароля, другой обходной путь - включить скрытое поле в начало вашей формы:

<!-- unused field to stop browsers from overriding form style -->
<input type='password' style = 'display:none' />
person Kt Mack    schedule 13.10.2014

Я прочитал так много тем и перепробовал так много фрагментов кода. Собрав все это, я нашел единственный способ чисто очистить поля логина и пароля и сбросить их фон на белый цвет:

$(window).load(function() {
    setTimeout(function() {
        $('input:-webkit-autofill')
            .val('')
            .css('-webkit-box-shadow', '0 0 0px 1000px white inset')
            .attr('readonly', true)
            .removeAttr('readonly')
        ;
    }, 50);
});

Не стесняйтесь комментировать, я открыт для всех улучшений, если вы их найдете.

person TwystO    schedule 08.08.2016

Автозаполнение не поддерживается современными браузерами. Самый простой способ решить проблему с автозаполнением, который я нашел, - это небольшая дорожка с HTML и JS. Первое, что нужно сделать, это изменить тип ввода в HTML с «пароль» на «текст».

<input class="input input-xxl input-watery" type="text" name="password"/>

Автозаполнение запускается после загрузки окна. Это нормально. Но когда тип вашего поля не «пароль», браузер не знал, какие поля он должен заполнить. Таким образом, в полях формы не будет автозаполнения.

После этого привяжите фокус события к полю пароля, например. в Backbone:

'focusin input[name=password]': 'onInputPasswordFocusIn',

В onInputPasswordFocusIn просто измените тип поля на пароль, выполнив простую проверку:

if (e.currentTarget.value === '') {
    $(e.currentTarget).attr('type', 'password');
}

Вот и все!

UPD: эта штука не работает с отключенным JavaSciprt

UPD 2018. Тоже нашёл забавный трюк. Установите атрибут readonly для поля ввода и удалите его в событии focus. Во-первых, запретить браузеру автозаполнение полей, во-вторых, разрешить ввод данных.

person volodymyr3131    schedule 18.01.2017
comment
Автозаполнение является частью стандарта, хотя его использование и реализация могут отличаться. Кроме того, изменение типов ввода в IE приводит к заметному сбою, поэтому jQuery блокирует его, но, как правило, это не лучшая идея, если вы планируете поддерживать IE developer.mozilla.org/en-US/docs/Web/Security/ - person casraf; 18.01.2017
comment
@casraf Извините, это часть стандарта, но он не работает во всех современных браузерах, как должен, поэтому он не будет делать то, для чего был изобретен. В EDGE работает нормально, про предыдущие версии ничего сказать не могу ( - person volodymyr3131; 18.01.2017
comment
Правда, не везде это реализовано. Проблема все еще существует - в зависимости от того, насколько давно вы хотите поддерживать IE - до версии 11 я не верю, что вы можете изменить тип ввода. Если вас не беспокоят старые версии, то вы также можете использовать autocomplete=off, поскольку он некоторое время работает в FF, Chrome и IE, как в предыдущей версии, или около того. - person casraf; 18.01.2017
comment
Я пробовал использовать autocomplete = off как для ввода, так и для формы, а Chrome по-прежнему заполняет данные форм регистрации и входа (. Это просто какая-то странная магия, потому что, судя по комментариям, в некоторых случаях это работает, а в у некоторых этого нет =) - person volodymyr3131; 19.01.2017
comment
Я знаю, что эти стандарты не соблюдаются постоянно. Обидно, усложняет нам жизнь :( - person casraf; 19.01.2017
comment
Да, я думал, что поддержка Safari ‹9 и IE‹ 10 будет достаточно болезненной для разработчиков, но подобные вещи просто сводят меня с ума!) - person volodymyr3131; 19.01.2017

Пожалуйста, попробуйте с autocomplete = "none" в вашем теге ввода

This works for me

person Vayodya Tamari    schedule 27.01.2020

Мне также пришлось изменить цвет текста на более темный (см. Цвета темной темы StackOverflow).

В итоге получился гибрид @ Tamás Pap, @MCBL и @don:

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0px 1000px #2d2d2d inset !important;
    -webkit-text-stroke-color: #e7e8eb !important;
    -webkit-text-fill-color: #e7e8eb !important;
}
person Andrei    schedule 25.05.2020

Вы можете стилизовать автозаполненные поля ввода с помощью :-webkit-autofill

Даже в firefox с префиксом webkit!

Чтобы изменить цвет фона, есть трюк с тенью блока.
А для Firefox вам потребуется дополнительно filter:none.

:-webkit-autofill { 
    filter:none; /* needed for firefox! */
    box-shadow: 0 0 0 100px rgba(38, 163, 48, 0.212) inset;
}
person Tobias Buschor    schedule 13.04.2021

Давайте воспользуемся небольшим взломом css:

input:-webkit-autofill, 
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus, 
textarea:-webkit-autofill, 
textarea:-webkit-autofill:hover, 
textarea:-webkit-autofill:focus, 
select:-webkit-autofill, 
select:-webkit-autofill:hover, 
select:-webkit-autofill:focus, 
input:-internal-autofill-selected {
    -webkit-text-fill-color: #000;
    background: #fff !important;
    box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0%), inset 0 0 0 100px #fff;
}
person warfish    schedule 22.04.2021

Почему бы просто не поместить это в свой css:

input --webkit-autocomplete {
  color: inherit;
  background: inherit;
  border: inherit;
}

Это должно решить вашу проблему. Хотя это вызывает проблемы с удобством использования, потому что теперь пользователь не может видеть, что форма была автоматически заполнена так, как он / она привык.

[править] После публикации этого я увидел, что аналогичный ответ уже был дан и, что вы прокомментировали его, что это не сработало. Я не совсем понимаю, почему, потому что он действительно работал, когда я его тестировал.

person Kris    schedule 11.03.2010
comment
не работает ни в хроме, ни в сафари. стиль input:-webkit-autofill, а input --webkit-autocomplete просто не существует - person ruruskyi; 16.08.2012
comment
@EliseuMonar: Я почти уверен, что не лгал, но не могу вспомнить подробности того, как и где я это тестировал. Сам код, вероятно, был набран из памяти, а не скопирован / вставлен, поэтому автозаполнение или автозаполнение? Не знаю. - person Kris; 12.11.2013

НАСТОЯЩАЯ проблема здесь в том, что в Webkit (Safari, Chrome, ...) есть ошибка. Если на странице более одной [формы], каждая из которых имеет [input type = "text" name = "foo" ...] (то есть с одинаковым значением атрибута 'name'), тогда, когда пользователь возвращается для страницы автозаполнение будет выполнено в поле ввода ПЕРВОЙ [формы] на странице, а не в [форме], которая была отправлена. Во второй раз будет автоматически заполнена СЛЕДУЮЩАЯ [форма] и так далее. Будет затронута только [форма] с текстовым полем ввода с ОДИНАКОВЫМ именем.

Об этом следует сообщить разработчикам Webkit.

Opera автоматически заполняет правую [форму].

Firefox и IE не заполняются автоматически.

Итак, я повторяю: это ошибка в Webkit.

person Per Lindberg    schedule 01.02.2012