我有一个关于在使用jQuery mobile时在表单中使用ID属性的问题。虽然我所拥有的功能似乎很有用,但我希望将所有内容都变为一致且准确的状态。
jQuery移动文档声明:
在构建要在jQuery Mobile中使用的表单时,大多数标准指南用于创建通过普通HTTP帖子提交的表单或仍然适用。但是,要记住的一件事是,表单控件的id属性不仅必须在给定页面上是唯一的,而且在站点中的页面上也是唯一的。这是因为jQuery Mobile的单页导航模型允许同时在DOM中存在许多不同的“页面”,因此您必须小心使用唯一的id属性,因此DOM中只有一个(和当然,请务必通过for属性将它们与标签元素正确配对。
我有一个多页网站。每页1个表格。所有页面中的所有表单都有一个基于页面名称的唯一ID(例如“return-user-details.php”页面获取的表单ID为id =“rudForm”)。
然而,许多这些页面需要相同的输入字段(用户名的文本字段元素(也称为表单控件?))。这些都使用name =“username”属性和值。它们没有ID属性。
目前,此特定字段显示为:
<legend>Username:</legend>
<input type="text" name="username" maxlength="20" /><label for="username"> </label>
我的主要问题是,我是否需要在所有网页上为用户名文字字段添加唯一ID以及表单ID,或者我可以在所有网页上为此字段使用id =“username”吗?我想这个问题的答案也适用于每个元素/表单控件? (因此,对页面上的表格中的每个ID使用“页面前缀”也许是一个好主意。)
正如我所说的,目前我可以使用不同的页面,每个页面都包含这个字段,它们似乎运行良好,所以我随后的问题是关于使用上述内容会出现什么问题?虽然我理解“DOM中存在多个页面”的抽象概念(例如,要求事物是独一无二的),但我并不了解jQuery,因此无法理解这可能会如何转化为问题。它会导致样式/格式问题吗?或者也许提交的数据不正确?
非常感谢,
罗布
答案 0 :(得分:2)
多个项目在单个HTML文档中具有相同的id属性永远不会有效。如果您没有指定id,则会在幕后为您生成一个或留空。无论哪种方式,都应该没有id属性冲突。
编辑:我们也在我们的jQuery移动网站中重用控件,和你的一样,我们都没有指定id属性。这种方法很好,已经生产了将近一整年。