IE просто игнорирует элементы HTML5, потому что не знает о них.Из документов Modernizr
Modernizr проходит через небольшой цикл в JavaScript, чтобы включить различные элементы из HTML5 (а также abbr) для стилизации в Internet Explorer.Обратите внимание, что это не означает, что он внезапно заставляет IE поддерживать элемент Audio или Video, это просто означает, что вы можете использовать section вместо div и стилизовать их в CSS.
Это говорит о том, что Modernizr будетрасскажите IE о новых тегах в HTML5, чтобы вы могли использовать с ними CSS, но на самом деле не заставляйте их ничего делать.Также обратите внимание, что Modernizr не добавляет стили по умолчанию для элементов, поэтому они рекомендуют использовать сброс HTML5 CSS, например, для <section>
тегов display: block;
.
Что касается проверки вашей формы, то topek правильно объяснил, что Modernizr обнаруживает только возможности браузера, но на самом деле он ничего не делает.Процесс Modernizr заключается в том, что вы используете встроенную функцию тестирования yepnope, чтобы увидеть, может ли браузер пользователя выполнить 'x' (в данном случае проверку формы), а затем условно и асинхронно загрузить скрипт или стиль в "polyfill" (вежливое).способ сказать «используйте javascript для имитации собственного поведения) для него.
В вашем случае вы захотите использовать Modernizr.load()
для проверки на Modernizr.input.required
и, вероятно, Modernizr.input.autofocus
, например, так:
//the modernizr conditional load function
Modernizr.load({
//specify the tests, refer to the Modernizr docs for object names
test: Modernizr.input.required && Modernizr.input.placeholder,
//specify what to do if the browser fails the test, can be a function
nope: 'path/to/polyfill/script',
//sometimes you need to run some JS to init that script
complete: function(){ polyfillinitorwhatever(); }
});
И вот, довольно урезанный Modernizr.load.Хотя я нахожу их документы извилистыми, они на самом деле очень хороши.Каждый раз, когда у меня возникала проблема и я писал в Твиттере Полу Айришу, он отправлял ссылку на документы, где я действительно нашел свой ответ при ближайшем рассмотрении.
Проверка - одна из самых сложных функций HTML5 дляпроизводители браузеров для реализации в качестве стандарта.Хотя мне очень нравится его простота, я продолжаю использовать jQuery.validate во всех случаях, кроме случаев, когда у пользователя есть Chrome или Opera - собственная проверка FF все еще слаба.Я бы порекомендовал вам придерживаться jQuery на данный момент.