【问题标题】:Is it ok for an HTML element to have the same [name] as its [id]?HTML 元素的 [name] 与其 [id] 相同是否可以?
【发布时间】:2010-11-08 20:57:31
【问题描述】:

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

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

我希望 flash 在ExternalInterface.objectID 中提供正确的objectID,这意味着我需要为object 设置nameid 属性。

通常我会尽量避免与 HTML 中的元素发生命名冲突,但在这种情况下将两个属性设置为相同的值有什么问题吗?

HTML 表单呢?有没有人觉得值得将 a(n) ( input | select | textarea ) 元素的 nameid 属性设置为相同的值?

【问题讨论】:

    标签: html flash embedding object-tag


    【解决方案1】:

    您使用 ID 进行 JavaScript 操作。

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

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

    【讨论】:

    • 另外,ID 应该是唯一的,但名称不必是唯一的。
    • Ida 也用于通过片段标识符进行链接,并通过它们在 CSS 选择器中的使用进行样式化
    • Ids 是为了更容易地操作 JavaScript,但也可以使用 JavaScript 通过名称来做一些事情。
    • 谢谢,我一直在寻找这个问题的答案
    【解决方案2】:

    不仅没问题,而且很常见。

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

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

    但是,旧版本的 IE 存在已知的错误,这意味着在许多情况下您几乎不得不将它们指定为相同。 (当然,假设你想支持那些旧版本的 IE!)

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

    【讨论】:

      【解决方案3】:

      是的!这绝对没问题。

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

      name 在表单提交期间用于 POST/GET 值。

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

      【讨论】:

        【解决方案4】:

        我刚刚发现了HTML4 answer to my question

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

        现在,我假设应用于appletiframe 的规则应该通过扩展适用于objectembed 标记。无论如何,迄今为止,使用相同的名称和 ID 并没有产生任何异常事件。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

          • 浏览器只应该使用name参数来发送表单数据
          • 虽然您不会对作为组成员的单选按钮或复选框使用相同的 nameid 值,因为单选按钮/复选框组在某种程度上由它们标识都同名。
          猜你喜欢
          • 2020-04-29
          • 2019-03-03
          • 2022-08-08
          • 2017-06-13
          • 1970-01-01
          相关资源
          最近更新 更多