Сегодня столкнулся с проблемой, когда web-форма работает в IE, но отказывается работать в Chrome (чаще бывает наоборот=).
Неработоспособность заключается в том, что форма не отправляется.
html и js код верный. Повозился некоторое время и в результате понял причину. Дело оказалось в том, что разработчик реализовал по-умолчанию "скрывание" некоторых элементов управления от пользователя. В этом-то и оказался корень зла. Разработчик активно использовал нововведения HTML5 в виде возможности валидировать поля в броузере без js и до отправки на сервер. Речь идет об атрибутах required, maxlength... ( подробнее читать в стандарте )
Скрытые с помощью CSS контролы тоже имели подобные атрибуты, и разработчик ожидал , что броузеры не станут проверять то, что пользователю недоступно.
Ошибся.
Что касается IE, то ему на эти атрибуты вообще было плевать. Поэтому форма благополучно отправлялась.
chrome-же , действуя строго по стандарту, проверял все, не взирая на стили. Неожиданно для пользователя, но вполне логично с точки зрения разработчиков chrome.
Проблема решается, например, добавлением атрибута disabled тем элементам, которые надо спрятать.
Надеюсь, прочитавшие этот пост на подобные грабли не наступят :)
Комментариев нет:
Отправить комментарий