HTML表单元素匹配“名称”和“ID”?

时间:2012-07-30 14:55:19

标签: php html forms

在编写时,如果可能的话,在HTML表单中使用匹配的“name”和“id”属性命名大多数字段时,我有很长的习惯。这使我可以简化动态HTML生成,f。恩。使用以下命令在PHP中创建下拉列表:

select("myselect", $values);

而不是:

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

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

我知道这个解决方案存在一些问题(这对于单选按钮和复选框数组来说并不好 - 为此我在我的PHP函数中包含一个$id参数用于无线电 - 它混合了两个用于不同目的的属性,当页面上有多个表单时,它可能会导致问题。)

这个坏习惯真的 坏吗?我是否忽略了其他一些可能的负面副作用? 你会在我的位置做什么?

  • 只要不引起任何问题,请坚持使用
  • 根本不要使用“ids”并使用适当的JQuery选择器,例如$(form[name='...'] input[name='...']).somefunction()
  • 每个元素中的代码是不同的ID吗?

1 个答案:

答案 0 :(得分:6)

给出一个匹配名称和ID的元素不会导致问题,所以你不必担心它,这也不错。

相关的事情导致问题:

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

不要使用“ids”

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