Dreamweaver8 标签for属性与对应的id之关系
<label>标签的功能是使浏览器用焦点矩形呈现在与表单对象关联的文本,使得用户可通过关联文本的任意位置,而不仅是在表单对象上,单击来选择该表单。
在DW8中插入表单元素,会弹出【输入标签辅助功能属性】对话框,使用”for”属性附加标签标记时,会在插入的表单项的两侧边(前侧或后侧)添加一个标签标记“<label>…</label>”
比如,在下面例子中直接单击文本“用户名”就可同样选中表单元素。
运行代码框
<form>
<label for="cn_bruce">用户名</label>
<input type="text" name="cn_bruce" accesskey="c" id="cn_bruce" />
</form>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
主要就是 label 属性 for="cn_bruce" 而 input 属性 id="cn_bruce",此为关联。
但使用DW8进行插入时,默认的 input 的 name 和 id 属性是相同的“textfield n(n=Φ,1,2,……)”
但很显然,在插入完表单对象后,需要重新编辑表单项的“名称”,比如修改“textfield”为“cn_bruce”
则,表单项的name 和 id 一起修改为“cn_bruce”
然而默认的标签label的 for 属性值还是 “textfield”,如果要实现 label 的功能就必须手动修改 for 的值
不过,相同的设置在对 radio 单选框进行设置时,却是能保证 label 的 for 属性值一直与对应的 表单项的 id值吻合
主要原因就是,当对radio 进行 name 属性值修改时,其对于的id 值是不变的。
为什么不变?
首先,radio 也就是单选框的功能是 多个当中选择一个,那么怎么区别许多的 radio 是一个组里面的,就从这一组中选择某一个。那么HTML标签就是要求,这许多的单选按钮要想是一个组里面的,必须要求其 name 属性值一样,比如下面的三个radio的name值都为“s”,则是一个组的。
运行代码框
男 <input type="radio" name="s" value="n" />
女 <input type="radio" name="s" value="v" />
妖 <input type="radio" name="s" value="y" />
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
那么只要一个name不同,则不属于一个组
OK,一直说明的是 radio 要求 name 值一样,再切到话题
因为上面其他的表单项在改变name属性值时自动改变id值
那么,如果radio也是改变name属性值时自动改变id值,因为radio的name值的一样,所以势必使得id值也一样
但,id属性值能一样么?id就是网页文档中网页元素对象的身份证号,是不建议相同的,所以,radio 的 id值就保持不变
所以,radio 对应的 label 标签的 for属性值 也就与之吻合
故,在Dreamweaver8中创建表单项时,其<label>标签的for属性值不能始终对应其表单项的ID值,为后来的编辑带来些麻烦。
所以,在DW8 中操作label和表单项:
要不就是使得 <label>标签的for属性值随着表单项id 值的变化而变化
要不就是在修改表单项name属性的同时,保持id属性值不变(如radio)