Несуществующие атрибуты Поле ввода HTML - PullRequest
3 голосов
/ 13 марта 2012

Рекомендуется ли прикреплять несуществующий атрибут к элементу html, чтобы использовать его в jquery.Например,

<input type="text" valrule="someregexstring" />

, затем просто используйте jquery, чтобы выбрать все элементы, которые содержат атрибут valrule, и проанализировать строку регулярного выражения.

Является ли это "запретным" для стандартов программирования?а лучшие практики уходят?

Ответы [ 4 ]

6 голосов
/ 13 марта 2012

Вы должны использовать префикс data-<myAttribute>. Он поддерживается HTML5, другие браузеры игнорируют его, и вы можете легко получить к нему доступ с помощью jQuery, используя метод .data().

<input  id="myInput" type="text" data-MySuperMassiveAttribute="Awesome"/>

и вы можете получить эту информацию следующим образом:

var howAmI = $('#myInput').data('MySuperMassiveAttribute');
alert(howAmI); // now everybody knows how awesome you are ;-)
3 голосов
/ 13 марта 2012

Использовать префикс HTML5 для нового атрибута, например:

<input type="text" data-valrule="someregexstring" />

Действительный HTML 5 ..

http://ejohn.org/blog/html-5-data-attributes/

2 голосов
/ 13 марта 2012

Вы определенно можете. Хотя HTML5 ввел так называемые атрибуты data- , что позволяет устанавливать нестандартные атрибуты для элементов стандартным способом.

Вы просто добавляете имена атрибутов к data-

<input type="text" data-valrule="someregexstring" />

Хотя это введено в HTML5, вы все равно можете использовать его с документами для HTML4.


Используя jQuery (1.4.3+), атрибуты data- могут быть доступны с помощью .data () - или с помощью .attr () .

0 голосов
/ 13 марта 2012

Лично я бы этого не сделал. Некоторые браузеры игнорируют «несуществующие» атрибуты при разборе HTML, поэтому эти атрибуты не будут сохранены в DOM страницы браузера. Когда выполняются селекторы jQuery, они могут не найти этот атрибут.

Если вы гарантированно работаете в HTML5-совместимых браузерах, тогда вы можете использовать префикс HTML5 data- для своих атрибутов, например,

<input type="text" data-valrule="someregexstring" />

Однако это может не сработать, если вы работаете в старых браузерах. Например, оказывается, что почти половина наших клиентов используют IE7 без планов обновления (движение со скоростью правительства).

...