2

我有很长时间的习惯,在编码时,尽可能使用匹配的“name”和“id”属性来命名 HTML 表单中的大多数字段。这使我能够简化动态 HTML 生成,f。前任。在 PHP 中创建一个下拉列表:

select("myselect", $values);

代替:

select("myselect", "myselectId", $values)

也使我的元素立即可用于 JQuery 中的选择器(用于验证等)。

我知道这个解决方案有一些问题(它不适合单选按钮和复选框数组 - 为此我$id在我的 PHP 函数中包含一个参数用于收音机 - 它混合了两个用于不同目的的属性,当超过一个表格在页面上)。

这个坏习惯真的那么糟糕吗?我是否忽略了其他一些可能的负面影响?你会代替我做什么?

  • 只要它没有引起任何问题,就坚持这一点
  • 根本不要使用“ids”并为 JQuery 使用适当的选择器,比如$(form[name='...'] input[name='...']).somefunction()
  • 在每个元素中编码一个不同的 id?
4

1 回答 1

6

提供匹配名称和 ID 的元素不会导致问题,因此您无需担心,这不是坏习惯。

确实会导致问题的相关事情:

  • 为多个元素提供相同的 id(例如,如果您有一个单选按钮组,其中每个成员必须具有相同的名称)。
  • 给一个元素一个名字,给一个不同的元素一个匹配的id

根本不要使用“ids”

如果您不给表单控件一个 id,那么您就不能使用for属性将其与<label>元素相关联。对for属性的支持比使表单控件成为标签的后代稍好一些。由于标签对可访问性非常有用(它们增加了点击目标的大小并在控件和输入之间提供了非视觉关联),因此关闭 id 并不是一个好主意。

于 2012-07-30T14:56:20.237 回答