两个元素的两个标签具有相同的ID,但形式不同。为什么不起作用?

时间:2013-10-23 13:38:20

标签: javascript jquery html label

This fiddle有一个我正面临的完美场景。

在某些情况下,我的应用程序中有两个元素具有相同的id。所有jQuery和JavaScripts函数都可以正常工作,因为我可以通过form元素区分它们。

但即使知道他们的所有者表单label属性),我的.form也会被搞乱。我可以弄清楚它为什么会这样。我认为这有点无意义。

我想知道这是否可以实现,或者是否只是不可能。

更新

只是对为什么重复某些id重复的解释是我的应用程序在ASP.Net Mvc上运行,因此这些元素是由MVC助手生成的,例如: EditorFor。所以它给了我id,我没有选择他们。

2 个答案:

答案 0 :(得分:4)

ID应该是唯一的。使用类或唯一ID。

答案 1 :(得分:1)

从您的评论中看起来似乎虽然您使用了两个具有相同属性的Models。在CodeEmployee上同时举例Company。在呈现HTML时,它会在表示该属性的每个元素上将属性名称设置为ID,以便为Employee.CodeCompany.Code分配相同的ID。

要解决此问题,而不是:

@Html.EditorFor(m => m.Code)

使用

@Html.EditorFor(m => m.Code, new { id = "Employee_Code" })

因此,您的ID将是唯一的,并将解决您遇到的问题。