HTML元素与[id]具有相同的[name]是否可以?

时间:2010-11-08 20:57:31

标签: html flash embedding object-tag

我正在尝试使用Satay方法在网页中嵌入Flash应用:

<object type="application/x-shockwave-flash" data="embeddy.swf"
id="embeddy" name="embeddy">
  <param name="movie" value="embeddy.swf" />
</object>

我希望Flash能够在objectID中提供正确的ExternalInterface.objectID,这意味着我需要为name设置idobject属性。

通常我会尽量避免使用HTML中的元素命名冲突,但在这种情况下将两个属性设置为相同的值是否有任何问题?

HTML表单怎么样?有没有人觉得将(n)(input | select | textarea)元素的nameid属性设置为相同的值是值得的?< / p>

5 个答案:

答案 0 :(得分:54)

您使用ID进行JavaScript操作。

您使用名称进行表单字段提交。

两者无关。因此,将两者设置为相同的值都可以,但不是必需的。

答案 1 :(得分:7)

不仅可以,而且很常见。

ID用于Javascript(在较小程度上用于CSS)。

名称用于表单字段,以指定提交值的名称。

然而,旧版本的IE已经知道错误,这意味着在很多情况下你几乎被迫指定它们。 (假设您想支持那些旧版本的IE,当然!)

但要记住的一件事是ID必须是唯一的。因此,如果您的单选按钮都具有相同的名称,则不能对它们使用相同的ID。但在大多数其他情况下,将它们保持不变是完全没问题的。

答案 2 :(得分:2)

烨!这绝对没问题。

id 是客户端标识符(用于在DOM中查找元素时)

在表单提交期间使用

name 来POST / GET值。

在输入元素之外,根本不需要使用 name 。但是给输入元素一个 id 可以让它们以一致的方式在DOM中查找。

答案 3 :(得分:1)

我一直这样做(主要是因为过去的一些浏览器 - 想到IE - 在发送表单数据时只使用name参数)。使用id可以使表单验证代码更加清晰,IMO。

答案 4 :(得分:1)

我刚刚发现了HTML4 answer to my question

  

id和name属性共享相同的名称空间。这意味着它们不能在同一文档中定义具有相同名称的锚点。允许使用这两个属性为以下元素指定元素的唯一标识符:A, APPLET, FORM, FRAME, IFRAME, IMG, and MAP当两个属性都用于单个元素时,它们的值必须相同。

现在,我认为应用于appletiframe的规则应该适用于objectembed标记。无论如何,使用相同的名称和id迄今没有发生任何异常事件。