Так что, если пользовательские атрибуты HTML не являются допустимыми XHTML? - PullRequest
78 голосов
/ 15 июня 2009

Я знаю, что по этой причине некоторые люди не одобряют их, но действительно ли это имеет значение? Я думаю, что сила, которую они предоставляют, взаимодействуя с JavaScript и храня и отправляя информацию с и на сервер, перевешивает проблему проверки. Я что-то пропустил? Каковы последствия "недействительного" HTML? И разве пользовательское DTD все равно не разрешит их?

Ответы [ 15 ]

0 голосов
/ 09 августа 2011

проверка

Вам не нужны пользовательские атрибуты для проверки. Лучшим подходом было бы добавить проверку на основе полей фактической задачи.

Назначьте значение с помощью классов. У меня есть имена классов, такие как:

  • date (Даты)
  • zip (почтовый индекс)
  • area (Области)
  • ssn (номер социального страхования)

Пример разметки:

<input class="date" name="date" value="2011-08-09" />

Пример javascript (с jQuery):

$('.date').validate(); // use your custom function/framework etc here.

Если вам нужны специальные валидаторы для определенного сценария, вы просто придумываете новые классы (или используете селекторы ) для своих особый случай:

Пример проверки соответствия двух паролей:

<input id="password" />
<input id="password-confirm" />

if($('#password').val() != $('#password-confirm').val())
{
 // do something if the passwords don't match
}

(Этот подход работает без проблем как с проверкой jQuery, так и с фреймворком mvc .net и, возможно, с другими)

Бонус: Вы можете назначить несколько классов, разделенных пробелом class = "ssn custom-one custom-two"

Отправка информации "с и на сервер"

Если вам нужно передать данные обратно, используйте <input type="hidden" />. Они работают из коробки.

(Убедитесь, что вы не передаете конфиденциальные данные скрытыми данными, поскольку они могут быть изменены пользователем практически без усилий)

0 голосов
/ 14 сентября 2010

Jquery .html (разметка) не работает, если разметка недопустима.

0 голосов
/ 15 июня 2009

Я думаю, что разработчики проверяют правильность только для проверки, но есть кое-что, что можно сказать о том факте, что он поддерживает разметку в чистоте. Однако, поскольку каждый браузер (предупреждение преувеличения!) Отображает все по-разному, на самом деле это не стандарт. Мы стараемся следовать стандартам, потому что это заставляет нас чувствовать, что у нас есть какое-то направление. Некоторые люди утверждают, что соблюдение стандарта кода предотвратит проблемы и конфликты в будущем. Мое мнение: винт, что сегодня никто не реализует стандарты правильно и полностью сегодня, все равно может предположить, что весь ваш код в конечном итоге потерпит неудачу. Если это работает, это работает, используйте это, если это не грязно или Вы просто пытаетесь игнорировать стандарты, чтобы придерживаться этого к W3C или кое-чему. Я думаю, что важно помнить, что стандарты внедряются очень медленно, сильно ли изменилась сеть за 5 лет. Я уверен, что у кого-то будут годы, когда им нужно будет исправить потенциальный конфликт. Нет смысла планировать совместимость стандартов в будущем, когда вы даже не можете полагаться на сегодняшние стандарты.

О, я почти забыл, если ваш код не подтвердит правильность, 10 маленьких котят умрут. Вы убийца котенка?

0 голосов
/ 15 июня 2009

Поскольку они не стандартные, вы не представляете, что может случиться ни сейчас, ни в будущем. Как уже говорили другие, W3C может начать использовать те же имена в будущем. Но что еще более опасно, так это то, что вы не знаете, что сделали разработчики "browser xxx", когда сталкиваются с ними.

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

Я знаю, что религиозное соблюдение стандартов может показаться снобизмом. Однако, как только вы испытываете проблемы из-за того, что не следите за ними, вы склонны перестать так думать. Тем не менее, это в основном слишком поздно, и вам нужно запустить приложение с нуля с другим фреймворком ...

0 голосов
/ 15 июня 2009

Использование нестандартного HTML может заставить браузер отображать страницу в «режиме причуд», в этом случае некоторые другие части страницы могут отображаться по-разному, а другие вещи, такие как позиционирование, могут немного отличаться. Однако использование специального DTD может обойти это.

...