不存在的属性HTML输入字段

时间:2012-03-13 12:55:01

标签: javascript jquery html input-field

将非现有属性附加到html元素以便在jquery中使用它是一种好习惯。例如

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

然后只需使用jquery选择包含名为valrule的属性的所有元素并解析正则表达式字符串。

就编程标准和最佳实践而言,这是一个“禁忌”吗?

4 个答案:

答案 0 :(得分:6)

您应该使用前缀data-<myAttribute>。 HTML5支持它,其他浏览器会忽略它,您可以使用.data()方法使用jQuery轻松访问它。

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

你可以像这样检索这些信息:

var howAmI = $('#myInput').data('MySuperMassiveAttribute');
alert(howAmI); // now everybody knows how awesome you are ;-)

答案 1 :(得分:3)

将HTML5数据前缀用于新属性,如下所示:

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

有效的HTML 5 ..

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

答案 2 :(得分:2)

你绝对可以。尽管HTML5引入了所谓的 data - 属性,但允许以标准方式将非标准属性设置为元素。

您只需在data-

前添加属性名称前缀
<input type="text" data-valrule="someregexstring" />

虽然这是在HTML5中引入的,但您仍然可以将它与HTML4的文档一起使用。


使用jQuery(1.4.3+),可以使用.data().attr()访问数据 - 属性。

答案 3 :(得分:0)

我个人不会这样做。有些浏览器会忽略&#34;不存在&#34;解析HTML时的属性,因此这些属性不会保存在浏览器页面DOM中。执行jQuery选择器时,它们可能找不到此属性。

如果您保证在HTML5兼容的浏览器中运行,那么您可以为您的属性使用HTML5 data-前缀,例如

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

但是,如果您在较旧的浏览器中运行,这仍然可能无效。例如,事实证明我们几乎有一半的客户使用IE7而没有升级计划(以政府的速度移动)。