在JavaScript的HTML标记中存储任意信息?

Pek*_*ica 4 html javascript tags

一个非常普遍的问题.

我正在动态生成一个表单,该表单使用HTML/JavaScript分成多个级别的选项卡.

我想使用CSS和background-image突出显示某些字段(具有与全局模板不同的值的字段)和星号*符号.

JS字段遍历每个字段,比较其值,并在必要时为其设置CSS类.到现在为止还挺好.

此外,我不仅希望每个更改的字段都标有星号,还要标记它所在的选项卡.

因为我喜欢它简单,我想将选项卡的元素ID存储为每个字段的HTML标记中的某个属性(类似"parentTab").JS函数然后突出显示该字段及其"parentTab"元素(也可能是那个"parentTab").

我的第一种方法是滥用"title"属性或somethiong来存储parentTab.当然,这很脏.但是,如果我只是将任意属性添加到DIV或INPUT标记中,它将不再验证,我觉得访问这些属性的安全性不足 - 谁知道不同的浏览器如何处理它,并将来会处理它?

所以我的问题是:是否有一种有效的,符合标准的方式 - 某种属性 - 将任意数据存储在HTML标记内,以便通过JavaScript进一步处理?

当然,我可以创建一个"parentTabs"JS数组并完成它.但是将它存储在输入本身会更加优雅.

pei*_*rix 22

通过引入html5,您可以使用以...开头的属性data-,并且它们仍然会进行验证.

<input type="text" name="username" data-parentTab="tab1" value="non-default">
Run Code Online (Sandbox Code Playgroud)

  • @cletus:对于旧浏览器来说无关紧要,因为它除了保存信息之外并没有真正做任何事情.这将在IE6中完美运行.它只是不会验证为XHTML或HTML4 ... (4认同)
  • 发现.@OP:**和**你可以马上开始使用它,即使规范没有完成.只需将您的doctype声明更改为"<DOCTYPE HTML>"(这就是整个事情; HTML5使doctypes更容易记住). (2认同)