Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6460
Последний выпуск: 19.06.2015

Логин пароль подставляется в форму не предназначеную для этого

308
23 мая 2013 года
dead_star
392 / / 26.11.2006
на сайте есть форма авторизации и в браузере сохранены мои авторизационные данные
и соответственно они браузером подставляются
и есть форма по созданию пользователя и в нее браузером подставляются мои авторизационные данные

с точки зрения юзабилити это конечно никуда не годится и это надо как-то исправить
пробовал переименовать поля, но это не помогло
у этих двух форм общее только то что есть поле ввода типа password и есть текстовое поле

браузер Chrome
в других возможно тоже воспроизводится
308
23 мая 2013 года
dead_star
392 / / 26.11.2006
вспомнил как решали эту проблему на другом проекте
в поле логина по умолчанию добавили пробел
не кошерно, но работает
37K
23 мая 2013 года
freets
97 / / 15.10.2010
А если очищать поля javascript'ом при загрузке?
308
24 мая 2013 года
dead_star
392 / / 26.11.2006
 
Код:
window.onload = function() {
    document.getElementById('user-add-email').value = '';
};
не помогло. тот же результат
8
24 мая 2013 года
mfender
3.5K / / 15.06.2005
А полям если аттрибуты name и id изменить? Стопудово помогает. Ещё неплохо помогает спецификацию HTML изучать хотя бы.

UPD. Шило в том, что аттрибуты поля name и id — суть разные вещи, и разные браузеры их юзают по-разному.
308
24 мая 2013 года
dead_star
392 / / 26.11.2006
Цитата: mfender
А полям если аттрибуты name и id изменить? Стопудово помогает.


так я же говорю

Цитата: dead_star
пробовал переименовать поля, но это не помогло


в форме авторизации id вообще нет и 2 поля login и pass
в форме создания пользователя поля:
name (ид user-add-name)
email (ид user-add-email)
group (ид user-add-group)
role (ид user-add-role)
password (ид user-add-password)
password-confirm (ид user-add-password-confirm)

авторизационные данные подставляются в поля email и password
переименовывание полей в "x" и "y", с аналогичными id не дает никакого результата

308
24 мая 2013 года
dead_star
392 / / 26.11.2006
сейчас у них даже тип разный
 
Код:
<input type="email" name="login" required="required" placeholder="Email">
 
Код:
<input type="text" name="email" required="required" id="user-add-email">
8
24 мая 2013 года
mfender
3.5K / / 15.06.2005
Ошибки не замечаете?
В первом поле есть name и нет id, поэтому default гуглехром приделывает ему id="login". FF и макинтошевская беда Safari делают почти так же. IE правильно понимает аттрибут name. Во втором поле name и id вообще различаются, что наводит на размышления о грамотности писателя. Я не просто так намекаю на чтение спецификации HTML.
308
24 мая 2013 года
dead_star
392 / / 26.11.2006
Цитата: mfender
Ошибки не замечаете?
В первом поле есть name и нет id, поэтому default гуглехром приделывает ему id="login". FF и макинтошевская беда Safari делают почти так же. IE правильно понимает аттрибут name. Во втором поле name и id вообще различаются, что наводит на размышления о грамотности писателя. Я не просто так намекаю на чтение спецификации HTML.


так
1. меня утомило ваши постоянные ссылки на спецификацию
я со спецификацией ознакомлен, но не помню что бы там упоминалось о том что значение атрибута id у элеменат ввода должно соответсвовать его атрибуту name
прошу привести ссылку на описание этого момента в цпецификации

2. проведя следсивенный эксперемент выяснил что указание id у элементов ввода у формы авторизации ситуацию не изменило
форма авторизации

 
Код:
<input type="email" name="login" id="login" required="required" placeholder="Email">
<input type="password" name="pass" id="pass" required="required" placeholder="Password">
форма добавления пользователя
 
Код:
<input type="text" name="email" id="email" required="required">
<input type="password" name="password" id="password" required="required">
как видно поля совершенно разные, а авторизационные данные браузером все равно подставляются
теперь единственное что у них общее так это порядок

вот если изменить их порядок и поле ввода пароля поставить первым в форме то авторизационные данные не подставляются
но это не решение проблемы так как форма не должна начинаться с поля вода пароля
ни та, ни другая форма
8
24 мая 2013 года
mfender
3.5K / / 15.06.2005
Ну и ладно. Не стану больше напрягать своими глупыми советами.
Ну разве что на дорожку посоветую посмотреть как мой дурацкий совет ведёт себя в других браузерах.
308
24 мая 2013 года
dead_star
392 / / 26.11.2006
FireFox 21.0 баг воспроизводится
IE 8 не воспроизводится
Opera 12.15 не воспроизводится
опера ищет поля по имени
если в другой форме увидит поле с именем login то предложит туда подставить его
аналогично с логином
то есть для оперы достаточно того что бы поля имели разное название
8
24 мая 2013 года
mfender
3.5K / / 15.06.2005
Ну и как по ощущениям? У меня глупый совет таки?
Нет, ну если ещё ничего в голову не пришло, то можно даже не шибко меня укорять и матюкать.
440
24 мая 2013 года
REmindER
292 / / 23.03.2003
Особенность действительно присутствует. Причем, такое поведение наблюдается, если в формах одинаково расположены поля ввода с типом text и password и они следуют одно за другим. Тут описывается схожая проблема, решением является указание отключенного autocomplete в теге формы, хотя автор пишет, что это не помогло. Ну, у меня, вроде, прокатило. Еще прошел такой финт ушами, как вставка в форму скрытого контейнера с дополнительными такими полями без свойств name:

 
Код:
<div style="display:none">
    <input type="text">
    <input type="password">
</div>
308
27 мая 2013 года
dead_star
392 / / 26.11.2006
я пробовал ставить autocomplete="off" на поле и у меня не работало
сейчас ставлю на всю форму и все ок
в хроме и фоксе не подставляется
правда как результат автокамплит в форме вообще не работает
но это в общем переживаемо
328
27 мая 2013 года
UserNet2008
744 / / 03.04.2010
Думаю, что mfender где-то прав
 
Код:
<input type="email" name="login" id="login" required="required" placeholder="Email">
<input type="password" name="pass" id="pass" required="required" placeholder="Password">
Как вариант:
У Вас есть повтор имен, это не есть правильно. Например name="login" id="login" может так name="my_login" id="login_my"
Имя должно быть уникальным, а не прямо линейным.
308
27 мая 2013 года
dead_star
392 / / 26.11.2006
Цитата: UserNet2008

У Вас есть повтор имен, это не есть правильно. Например name="login" id="login" может так name="my_login" id="login_my"
Имя должно быть уникальным, а не прямо линейным.


изначально в форме авторизации вообще не использовался id в связи с тем что он там попросту не нужен
в форме добавления пользователя у id элементов использовался префикс user-add-
то есть получается name="email" id="user-add-email"
на другом проекте где столкнулись с этой проблемой у всех форм использовалась более сложная структура именования id и name

328
27 мая 2013 года
UserNet2008
744 / / 03.04.2010
Изменил ответ т.к см. здесь
Интересно написано:

 
Код:
<div id="help">
   Этот элемент помогает в случае, когда вы находитесь в осознании того
   факта, что совершенно не понимаете, кто и как вам может помочь. Именно
   в этот момент мы и подсказываем, что помочь вам никто не сможет.
  </div>

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог