非现有属性HTML输入字段
-
13-12-2019 - |
题
将一个不存在的属性附加到html元素以便在jquery中使用它是一种很好的做法。例如
<input type="text" valrule="someregexstring" />
然后只需使用jquery选择包含名为valrule的属性的所有元素并解析正则表达式字符串。
就编程标准和最佳实践而言,这是一个"不走"吗?
解决方案
您应该使用前缀 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 ;-)
其他提示
使用HTML5数据 - 前缀为新属性:
<input type="text" data-valrule="someregexstring" />
.
它有效的HTML 5 ..
我个人不会那样做。有些浏览器在解析HTML时会忽略"不存在"的属性,因此这些属性不会保存在浏览器页面DOM中。JQuery选择器执行时,可能找不到此属性。
如果保证在HTML5兼容的浏览器中运行,那么您可以使用HTML5 data-
属性的前缀,例如
<input type="text" data-valrule="someregexstring" />
但是,如果您在旧版浏览器中运行,这仍然可能不起作用。例如,事实证明,我们几乎有一半的客户正在使用IE7,没有计划升级(以政府的速度移动)。
不隶属于 StackOverflow