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