我正在尝试使用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
设置id
和object
属性。
通常我会尽量避免使用HTML中的元素命名冲突,但在这种情况下将两个属性设置为相同的值是否有任何问题?
HTML表单怎么样?有没有人觉得将(n)(input
| select
| textarea
)元素的name
和id
属性设置为相同的值是值得的?< / p>
答案 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
。 当两个属性都用于单个元素时,它们的值必须相同。
现在,我认为应用于applet
和iframe
的规则应该适用于object
和embed
标记。无论如何,使用相同的名称和id迄今没有发生任何异常事件。