在编写时,如果可能的话,在HTML表单中使用匹配的“name”和“id”属性命名大多数字段时,我有很长的习惯。这使我可以简化动态HTML生成,f。恩。使用以下命令在PHP中创建下拉列表:
select("myselect", $values);
而不是:
select("myselect", "myselectId", $values)
使我的元素可以立即用于JQuery中的选择器(用于验证等)。
我知道这个解决方案存在一些问题(这对于单选按钮和复选框数组来说并不好 - 为此我在我的PHP函数中包含一个$id
参数用于无线电 - 它混合了两个用于不同目的的属性,当页面上有多个表单时,它可能会导致问题。)
这个坏习惯真的 坏吗?我是否忽略了其他一些可能的负面副作用? 你会在我的位置做什么?
$(form[name='...'] input[name='...']).somefunction()
答案 0 :(得分:6)
给出一个匹配名称和ID的元素不会导致问题,所以你不必担心它,这也不错。
做相关的事情导致问题:
不要使用“ids”
如果您没有为表单控件提供ID,则不能使用for
属性将其与<label>
元素相关联。对于for
属性的支持稍微好于使表单控件成为标签的后代。由于标签对于可访问性非常有用(它们会增加点击目标的大小并在控件和输入之间产生非可视关联),因此关闭ids不是一个好主意。