`
coding1688
  • 浏览: 236746 次
  • 来自: 上海
社区版块
存档分类
最新评论

关于label标签与表单控件的显式联系和隐式联系

阅读更多

在html中,<label> 标签为 input 元素定义标签(我称之为输入提示)。
label 元素不会向用户呈现任何特殊效果。它为鼠标用户改进了可用性。如果在 label 元素内点击文本,就会触发此input控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。

<label> 标签的 for 属性应当与相关元素的 id 属性相同。

比如:

<p>请点击文本标记之一,就可以触发相关控件:</p>


<form>
<label for="male">男</label>
<input type="radio" name="gender" id="male" />
<br />
<label for="female">女</label>
<input type="radio" name="gender" id="female" />
</form>

在具体使用时,如果 input 类型为 text ,一般将输入提示写在输入控件的左边;而 input 类型为 radio 或 checkbox 时,一般在输入控件的右边(也有写在左边的,如上面的例子)。

for 属性规定 label 与哪个表单元素绑定。

隐式和显式的联系

标记通常以下面两种方式中的一种来和表单控件相联系:将表单控件作为标记标签的内容,这样的就是隐式形式,或者为 <label> 标签下的 for 属性命名一个目标表单 id,这样就是显式形式。
例如,在 XHTML 中:
显式的联系:
<label for="SSN">Social Security Number:</label>
<input type="text" name="SocSecNum" id="SSN" />

隐式的联系:
<label>Date of Birth: <input type="text" name="DofB" /></label>
第一个标记是以显式的形式将文本 "Social Security Number:" 和表单的社保号的文本输入控件 ("SocSecNum") 联系起来,它的 for 属性的值和控件的 id 一样,都是 SSN。
第二个标记 ("Date of Birth:") 不需要 for 属性,它的相关控件也不需要 id 属性,它们是通过在 <label> 标签中放入 <input> 标签来隐式的连接起来的。

如果是通过 js 或 jsp 来动态生成 <label>和<input>,最好还是采用隐式的联系,更好实现,因为不必分配和生成 id,要做到同一个网页中id不重复还是有点费劲的。

实际使用的例子:使用 FreeMarker 和 JavaScript 综合生成代码

                        /* 以前采用显式的联系,生成id费劲,还要避免与别的id重复
                        $cblist.append("<li><input type='checkbox' id='form${form.formId}_${field.sysName}_"
                            +i
                            +"' name='${field.sysName}' value='"
                            +value
                            +"'" + (found ? " checked='checked'" : "") + "/> "
                            +"<label class='none' for='form${form.formId}_${field.sysName}_"
                            +i
                            +"'>"
                            +json.data[i].text+"</label>&nbsp; </li>");
                        */

                        // 改用隐式的联系,代码简洁
                        $cblist.append("<li><label class='none'><input type='checkbox' name='${field.sysName}' value='" +value +"'"
                            + (found ? " checked='checked'" : "")
                            + "/> " +json.data[i].text+"</label>&nbsp; </li>");

 

 

 

4
1
分享到:
评论

相关推荐

    dll显式链接与隐式链接

    本文将深入探讨DLL的两种主要链接方式:显式链接和隐式链接。 **一、隐式链接** 隐式链接是Windows程序中最常见的链接DLL的方式。当编译器处理源代码时,它会查找所有引用的外部函数和变量,并将其与DLL中的符号...

    Android显式启动与隐式启动Activity的区别介绍

    **显式启动与隐式启动的对比** - **可控性**:显式启动更直接,控制性强,只启动指定的Activity;而隐式启动可能有多个Activity匹配,需要用户选择或系统决定。 - **灵活性**:隐式启动更灵活,可以实现跨应用的...

    Oracle显式游标和隐式游标.doc

    Oracle 显式游标和隐式游标 Oracle 中的游标是 SQL 的一个内存工作区,由系统或用户以变量的形式定义。游标有两种类型:显式游标和隐式游标。显式游标是一种明确声明的游标,需要在声明部分使用 CURSOR 语句来定义...

    0105-极智AI-解读TensorRT显式batch和隐式batch-个人笔记

    0105_极智AI_解读TensorRT显式batch和隐式batch-个人笔记

    隐式调用dll和显式调用dll

    本文将深入探讨两种调用DLL中函数的方法:隐式调用和显式调用,并通过一个名为`TestCallDll`的示例项目进行解释。 **隐式调用DLL** 隐式调用是通过链接器在编译时完成的。当编译器处理源代码时,如果遇到对DLL中...

    C#显式类型与隐式转换

    ### C#中的显式类型与隐式转换 在C#编程语言中,类型转换是非常重要的一个概念,它涉及数据类型的转换以及如何确保程序能够正确处理不同类型的数据。本文将基于提供的内容,详细介绍C#中几种常见的类型转换方法及其...

    02_显式原型与隐式原型.html

    02_显式原型与隐式原型.html

    双曲型方程-显式与隐式原理及实现

    1. "双曲型方程-显式与隐式.docx" - 这可能是文档形式的理论介绍,详细阐述了显式和隐式方法的原理,以及它们在双曲型方程中的应用。 2. "Solve_and_Output.m" - 这可能是一个主程序,调用了其他函数来执行双曲型...

    【GAMES101】作业8 显式/半隐式欧拉与Verlet方法模拟绳子运动

    在本作业中,我们将探讨如何使用显式欧拉、半隐式欧拉和Verlet方法来模拟绳子的运动。这些方法是计算机图形学中常用的动力学模拟技术,特别是在游戏开发和物理仿真中。让我们深入了解一下这三个算法以及它们在C++...

    abaqus显示和隐式算法的差别.pdf

    其中,中心差分法(显式)和 Newmark 法(隐式)是两种常用的算法。下面,我们将对这两种算法进行详细的介绍和比较。 中心差分法(显式) 中心差分法是一种常用的 explicit 算法,用于解决有限元分析中的动力学...

    SQL Server数据库P166 (3)ROLLBACK TRANSACTION将显式事务或隐式事务回滚到事务的结束.sql

    内容概述:SQL Server数据库相关内容,对应张磊著《SQL Server数据库应用技术项目化教程》中166页(3)ROLLBACK TRANSACTION将显式事务或隐式事务回滚到事务的结束所对应的源码。代码经个人运行后无误,如果下载后运行...

    c语言编写阿当姆斯显式与隐式

    在循环结束后,程序输出了每个时间点的`x`, `y`, `y1`, `y2`的值,同时计算了显式和隐式方法解与真实值之间的误差。 阿当姆斯显式方法的特点是计算较为简单,但可能在不稳定的区域(如当步长过大时)导致数值不稳定...

    显式和隐式、过滤器intent的使用

    本教程主要探讨显式Intent和隐式Intent以及Intent Filter的使用,旨在帮助开发者更好地理解和应用这些概念。 首先,让我们理解显式Intent。显式Intent是一种明确指定接收方的Intent。在创建显式Intent时,我们需要...

    activity显式隐式跳转

    Activity之间的跳转是Android应用中常见的操作,主要分为两种方式:显式跳转和隐式跳转。 **显式跳转**是通过指定目标Activity的完整类名(包括包名)来启动它。这种方式非常直接,适用于在同一应用内部或不同应用...

    动态链接库DLL的(隐式和显式)的创建和使用

    1. **隐式链接与显式链接** - **隐式链接**:在编译阶段,编译器会将DLL函数的调用直接插入到目标程序中。这需要在项目设置中指定所需的.lib导入库,并在链接时将.dll文件放在系统路径或应用程序目录下。这样,程序...

    隐式 Euler 与显式 Euler:比较隐式与显式 Euler-matlab开发

    在质量弹簧阻尼器系统上比较隐式与显式欧拉。 隐式方法基于以下论文: D. Baraff 和 A​​. Witkin,“布料模拟中的大步骤”,第 25 届计算机图形和交互技术年会论文集 - SIGGRAPH '98,1998,第 43-54 页。

    微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉 五点差分

    微分方程一维抛物热传导方程向前向后欧拉C-N...显式欧拉,隐式欧拉,梯形公式,改进欧拉 五点差分,九点差分 差分格式,紧差分格式 直拿,只有pdf版方法说明 word版 公式纯手打 数值例子有数据图解分析 含源码和流程图

Global site tag (gtag.js) - Google Analytics