Для будь-якого web-розробника поки немає більш серйозної проблеми, як повна кроссбраузерность його продукту. Напевно, це одна з основних задач хорошого фахівця: домогтися того, щоб його сайт завжди правильно відображався у всіх браузерах.
Параметр required. який іноді використовується для input, не працює в древніх IE, що просто не можна так залишити. Користувачі-пенсіонери, які до сих пір користуються IE6 повинні однаково легко працювати з вашим сайтом, поряд з користувачами Google Chrome останньої версії. Хто, крім web-розробників, про них може подбати.
Про наболіле, про Internet Explorer
Для нормальних браузерів, до яких можна віднести Firefox, Opera і Google Chrome, ця задача щодо легка. Навіть давні версії цих браузерів однаково добре відображають html-код, якщо в ньому звичайно ж не використовуються якісь нові технології. Але щоб домогтися подібного в браузерах сімейства Internet Explorer, потрібні просто титанічні зусилля.
Кожна версія браузера Internet Exlorer має свою, унікальну тупістю. Що працює в IE6, може як покладено не працювати в IE7 і навпаки. Цей зоопарк компанії Microsoft не вдалося побороти навіть в самій останній версії свого браузера.
Зрозуміти чому розробники браузерів не можуть просто взяти відкрити і почитати стандарти W3C для сайтобудування, я не можу.
Тому мені, як web-розробнику, доводиться виступати деякої "прошарком" між примхливими браузерами і вимагають знань і видовищ відвідувачами сайтів. І чудово, що web-розробникам поки це вдається.
Дак, як же змусити працювати required в старих версіях IE?
На допомогу нам приходить JS. Раніше я терпіти його не міг, а тепер не бачу подальшого шляху без нього на просторі "правильного" WEB.
Рішення наведене нижче я вигадав не саме, а взяв з буржуйського блогу. Так як я жадібний, а блог буржуйський, я не стану наводити на нього посилання.
За все у нас буде відповідати функція fnCheckFields (). Помістіть на вашому сайті JS-код:
Зазвичай рекомендують розміщувати його між html-тегами HEAD на початку сторінки, але я б рекомендував все ж розміщувати його в самому низу сторінки до закривається тега BODY. Таким чином JS менше впливає на швидкість завантаження сторінки.
Вікно введення, де повинен вводитися обов'язковий параметр, на html-мовою повинно виглядати так:
Цей скрипт працює дуже просто: після натискання кнопки Надіслати. скрипт перевіряє всі інпут на наявність параметра required і якщо знаходить його, то відповідно дивиться на введене значення цього поля. Якщо в такий інпут нічого не введено, то виводиться застережливе вікно про необхідність введення. Дані відповідно нікуди не відправляються.
Чудово ще й те, що якщо у Вас нормальний браузер, який вже навчився розуміти цей параметр як годиться, такого попереджувального вікна не спливе і працюватимуть стандартні інструменти обробки параметра required для вашого браузера.