标签for属性与对应的id之关系

80酷酷网    80kuku.com

  

Dreamweaver8 标签for属性与对应的id之关系

<label>标签的功能是使浏览器用焦点矩形呈现在与表单对象关联的文本,使得用户可通过关联文本的任意位置,而不仅是在表单对象上,单击来选择该表单。

在DW8中插入表单元素,会弹出【输入标签辅助功能属性】对话框,使用”for”属性附加标签标记时,会在插入的表单项的两侧边(前侧或后侧)添加一个标签标记“<label>…</label>”

比如,在下面例子中直接单击文本“用户名”就可同样选中表单元素。

运行代码框

[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”,则是一个组的。

运行代码框

[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)



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: