Xpoint
   [напомнить пароль]

Как скрыть часть HTML кода от валидатора?

Метки: [без меток]
2008-09-13 17:25:23 [обр] index(0/2)[досье]

Столкнулся с проблемой: DOCTYPE на странице у меня прописан как xhtml1-strict.dtd

На странице есть такой HTML код:

<input type="text" id="s1" name="s1" value="" pattern="^.+$" autofocus="autofocus" />

То есть я внес два неизвестных атрибута - pattern и autofocus. Но при проверке через http://validator.w3.org/check выскакивают ошибки:

there is no attribute "pattern" и there is no attribute "autofocus"

Есть ли какая то возможность подавить эти ошибки? Может есть какие-то комментарии, чтобы валидатор не проверял именно этот тег (кусок кода)? От XHTML Strict, а также этих нестандартных атрибутов отказываться не хочется (они упрощают мне JS проверку формы при ее отправке на сервер). Спасибо!

спустя 1 час 49 минут [обр] Lynn «Кофеман»(56/571)[досье]

index[досье]
Валидатор не истина в последней инстанции. Нужны вам эти атрибуты — пользуйтесь.

В теории, вы можете расширить DOCTYPE, что б в нём были эти атрибуты. На практике лучше забить на эти ошибки.

спустя 1 час 13 минут [обр] MiRacLe(1/80)[досье]

добавьте свой namespace

<input type="text" id="s1" name="s1" value="" index:pattern="^.+$" index:autofocus="autofocus" />

спустя 1 час 3 минуты [обр] Marat Tanalin(6/78)[досье]

Нестандартные атрибуты можно добавлять средствами JavaScript в момент готовности DOM-дерева. HTML-элементы как JavaScript-объекты могут иметь любые атрибуты, в то же время исходный HTML-код будет чист. Например, в jQuery:

$(document).ready(function() {
    $('#s1').attr({
        pattern: '^.+$',
        autofocus: 'autofocus'
    });
});

Это несложно автоматизировать.

Что касается конкретных приведённых вами атрибутов, то это не вполне безопасно — вместо pattern и autofocus в вашем случае злоумышленник может подставить что угодно. Такая проверка ничем не лучше чисто клиентской, совершенно ненадёжной JavaScript-проверки.

В проверках правильности заполнения полей форм лучше привязываться к уникальному идентификатору конкретной формы, передаваемому на сервер в скрытом (hidden-) поле, при этом описание всех опций проверки корректности формы хранить на сервере и клиенту не показывать и не давать даже теоретической возможности их изменить.

Powered by POEM™ Engine Copyright © 2002-2005