我有很长一段时间的习惯,在编写代码时尽可能使用匹配的“name”和“id”属性来命名 HTML 表单中的大部分字段。这使我能够简化动态 HTML 生成,f。前任。使用 PHP 创建下拉菜单:
select("myselect", $values);
代替:
select("myselect", "myselectId", $values)
让我的元素立即可用于 JQuery 中的选择器(用于验证等)。
我知道这个解决方案有一些问题(它不适合单选按钮和复选框数组 - 为此我在我的单选 PHP 函数中包含一个 $id
参数 - 它混合了两个属性意味着不同的目的,当页面上有多个表单时可能会导致问题。
这个坏习惯真的那么坏吗?我是否忽略了其他一些可能的负面影响? 如果你处在我的位置,你会怎么做?
- 只要不会造成任何问题,就坚持这样做
- 根本不要使用“ids”并为 JQuery 使用适当的选择器,例如
$(form[name='...'] input[name='...']).somefunction()
- 在每个元素中编写不同的 id?
最佳答案
为元素提供匹配的名称和 ID 不会造成问题,因此您无需担心,这不是坏习惯。
相关的事情做会导致问题:
- 为多个元素赋予相同的 ID(例如,如果您有一个单选按钮组,其中每个成员都必须具有相同的名称)。
- 给一个元素一个名字,给另一个元素一个匹配的id
Do not use "ids" at all
如果你不给表单控件一个id,那么你就不能使用for
属性将其与 <label>
相关联元素。支持for
属性比使表单控件成为标签的后代要好一些。由于标签对于可访问性非常有用(它们增加了点击目标的大小并在控件和输入之间提供了一种非视觉关联),所以不使用 id 并不是一个好主意。
关于php - 具有匹配 "name"和 "id"的 HTML 表单元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11723992/