Web前端开发笔记——第二章 HTML语言 第八节 表单标签

简介: Web前端开发笔记——第二章 HTML语言 第八节 表单标签

一、表单的定义


表单用于收集用户的输入信息,它是一个区域,在这个区域里添加表单元素即可收集用户的信息,表单元素可以是文本、单选框、复选框、按钮、下拉菜单等等。

比如下面的qq登录页面,它就是一个表单:

1667057442735.jpg

表单用<form></form>标签表示,它有个重要的属性为action属性,action后跟数据处理网页的URL,表示收集用户的数据交由该页面进行处理,它表示为<form action="">表单元素</form>,其它的属性这里不做展开。


二、输入标签


在form标签内加上<input>标签,它用于用户输入信息,且input标签是单独出现的。


(一)文本框和密码框


input标签通过添加type属性后的取值来表示文本框和密码框,通过添加id属性唯一定位到该元素,另外还有name属性,该属性规定 input 标签的名称,即该表单元素的名称。

一个文本框或密码框的默认宽度是20个输入字符,也可以通过设置size属性来限制输入的字符。

文本框表示为:

<input type="text" id="" name="" size="" />

例如,在HBuilder X中,下列html代码,该表单由两个输入标签的文本框组成:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>
  <body>
  <form>
    <h2>登录页面</h2>
    <p>账号:<input type="text" name="User_id" /></p>
    <p>密码:<input type="text" name="User_password" /></p>
  </form>
  </body>
</html>

运行结果如下,输入内容:

1667057808322.jpg

密码框与文本框的区别是当在输入内容时,其文本内容是由星号或者小圆点替代显示输入内容的,密码框表示为:

<input type="password" name="" size="" />

例如,在HBuilder X中,下列html代码,该表单由输入标签的一个文本框和一个密码框组成的:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>
  <body>
  <form>
    <h2>登录页面</h2>
    <p>账号:<input type="text" name="User_id" /></p>
    <p>密码:<input type="password" name="User_password" /></p>
  </form>
  </body>
</html>

运行结果如下,可见我们输入的密码是由暗文显示的:

1667057838255.jpg


(二)提交按钮和重置按钮


按钮分为提交按钮和重置按钮。input标签通过添加type属性、value属性和name属性来表示,即type="submit"时表示提交按钮,而type="reset"时表示重置按钮,vlaue=""表示按钮上面的文字,name=""表示该按钮的名称。

例如,在HBuilder X中,下列html代码,该表单由输入标签的一个文本框和一个密码框组成的,输入后由提交按钮点击登录,或者点击重置按钮重新输入内容:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>
  <body>
  <form>
    <h2>登录页面</h2>
    <p>账号:<input type="text" value="" name="User_id" /></p>
    <p>密码:<input type="password" value="" name="User_id" /></p>
    <input type="submit" name="log_submit" value="登录" />
    <input type="reset" name="Rese_submit" value="重置" />
  </form>
  </body>
</html>

运行结果如下:

1667057867559.jpg

点击重置后,输入内容会被全部清除:

1667057874759.jpg


(三)数值选项菜单


通过在input标签中添加type="number"属性,定义一个数值选项菜单。且通过name=""属性定义名称、min=""属性和max=""属性限制输入的最小、最大值,另外还可以通过定义maxlength="“属性限制输入的最大字符长度、value=”"属性表示输入的默认值。

<input type="number" name="" min="" max="" value="" maxlength="">

例如,在HBuilder X中,下列html代码,选择出生日期,我们将出生日期年月日默认值为2000/01/01,且设置了输入年月日的最小最大值:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>
  <body>
  <form>
    <h3>请输入你的出生日期:</h3>
    <form>
    <p>
      <input type="number" name="year" min="1900" max="2021" value="2000" />年
      <input type="number" name="month" min="01" max="12" value="01" />月
      <input type="number" name="day" min="01" max="31" value="01" />日
    </p>
    </form>
  </body>
</html>

运行结果如下:

1667058003852.jpg

可以通过点击上下箭头或者直接输入来改变日期:

1667058011560.jpg


(四)滑动条


通过在input标签中添加type=range属性,定义一个滑动条,一般用于模糊选择,即可以拖到滑动条进行选择。且通过name=""属性定义名称、min=""属性和max=""属性限制滑动的最小、最大值,还可以通过step=""属性设置数字间隔。

例如,在HBuilder X中,下列html代码中:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>
  <body>
  <form>
    <h3>请选择你的班级:</h3>
    <form>
    <input type="range" name="class" min="01" max="10" step="1" />班
    <input type="submit" name="log_submit" value="提交" />
    </form>
  </body>
</html>

运行结果如下,因为设置了step=“1”,即数字间隔为1,每拖动滑块就增加1:

1667058041050.jpg


(五)搜索框


通过在input标签中添加type="search"属性,定义一个搜索框。

例如,在HBuilder X中,下列html代码:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>
  <body>
  <form>
    <form>
    <p>Search:<input type="search" name="class" />
    <input type="submit" name="log_submit" value="搜索" /></p>
    </form>
  </body>
</html>

运行结果如下:

1667058071459.jpg


(六)input标签的其它type属性


另外,还可以通过设置input标签中的type=“color”type=“date”type="email"来选取颜色、选择日期、输入email地址。


(七)单选框和复选框


单选框只能选择一项,而复选框可以选择多项,例如下图就是个复选框,不过也进行了限制,只能最多选择三项:

1667058098783.jpg

input标签通过添加type属性、vlaue属性、name属性以及checked属性来设置单选框和复选框。type="radio" 表示单选框,而type="checkbox"表示多选框,vlaue=""表示提交给后端的数据,name=""表示单个项的名称, checked="checked"表示该项被默认选中。

例如,在HBuilder X中,下列html代码的选课页面,物理或历史是必须选择的,所以它默认选中,另外在剩下四项中选择两项:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>
  <body>
  <form>
    <h2>选课页面</h2>
    <p>一、请在以下两项中选择一项,物理或历史必选:<br />
    物理<input type="radio" name="necessary" value="选择物理" checked="checked" />
    历史<input type="radio" name="necessary" value="选择历史" />
    <br />
    二、其它科目为自选,请在以下四项中选择两项:<br />
    化学<input type="checkbox" name="ch" value="选择化学" />
    生物<input type="checkbox" name="bi" value="选择生物" />
    政治<input type="checkbox" name="po" value="选择政治" />
    地理<input type="checkbox" name="ph" value="选择地理" />
    </p>
    <input type="submit" name="log_submit" value="提交" />
  </form>
  </body>
</html>

运行结果如下,我们可以发现我们定义的两个单选框,其两个input标签的name属性是一样的,这样才能保证只能选择一个选项,且若不做选择,会默认选择“物理”科目:

1667058126483.jpg

而若想控制复选框中选择的限制数量,就要用到javascript,这里不做进一步,只是了解。


(八)带边框的表单


通过<fieldset></fieldset>标签,设置一个带边框的表单,其中在fieldset标签内输入<legend></legend>标签,可添加该表单的名称。另外在legend标签内定义输入标签input的属性。

如下,在HBuilder X中,下列html代码,创建一个带边框的表单,其名称为信息栏:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>
  <body>
  <form>
    <fieldset>
    <legend>信息栏:</legend>
    姓名:<input type="text" size="10"><br />
    性别:<input type="text" size="10"><br />
    身份证号:<input type="text" size="20"><br />
    <input type="submit" name="log_submit" value="提交" />
    <input type="reset" name="reset_submit" value="重置" />
    </fieldset>
  </form>
  </body>
</html>

运行结果如下:

1667058161620.jpg


三、下拉菜单


(一)默认选项的下拉菜单


使用<select></select>选项标签,通过下拉菜单选择内容,使用name属性,select name=""表示定义下拉菜单的名称。

其中每一项都用<option>选项</option>标签表示其中的选项,设置value属性,表示送往目标服务器的值。

<select name="">
  <option value=""></option>
  <option value="" selected="selected"></option>
</select>

当设置option标签的属性selected="selected",即<option selected="selected">选项</option>时表示默认选择的选项,它会在下拉菜单上的文本框中显示。

例如,在HBuilder X中,下列html代码的选课页面中,设置下拉菜单,选择物理或者历史,默认选项为物理:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form>
        <h2>选课页面</h2>
        <p>请在以下两项中选择一项,物理或历史为必选:
            <select name="Course selection">
                <option value="physics" selected="selected">
                    物理
                </option>
                <option value="politics">
                    历史
                </option>
            </select>
        </p>
        <input type="submit" name="log_submit" value="提交" />
    </form>
</body>
</html>

运行结果如下:

1667058226419.jpg


(二)自动填充选项的下拉菜单


通过在表单中输入标签内加入<datalist></datalist>标签,并定义一个下拉菜单,从而实现在输入选项时,会匹配相应的选项。 在输入标签的list属性引用 datalist标签的id属性,并通过<option></option> 标签在 datalist标签内配置下拉菜单的选项。

例如,在HBuilder X中,下列html代码中,当输入选项中一个字母时,它会自动匹配相应的选项:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>
  <body>
  <form>
    <h3>Please select account:</h3>
    <input list="subjecs" name="select account">
    <datalist id="subjecs">
    <option value="Chinese">
    <option value="Math">
    <option value="English">
    <option value="Physics">
    <option value="Chemistry">
    <option value="Biology">
    </datalist>
    <input type="submit" name="log_submit" value="确定">
  </form>
  </body>
</html>

运行结果如下:

1667058261826.jpg

当输入Chinese的首字母"C"或者"c"时,它会自动匹配菜单栏中带有相应匹配的选项,并在下拉菜单栏显示:

1667058273429.jpg


四、文本域


通过<textarea></textarea>文本域标签,可以定义一大块的文本区域,它有以下的属性,rows属性定义该文本域的行数,cols属性定义该文本域的列数,name属性表示该文本域的名称,id属性代表定义该文本域的唯一 id 值。

<textarea name="" id="" cols="" rows=""></textarea>

例如,在HBuilder X中,下列html代码中,设置一个行数为30,列数为10的文本域:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form>
        <h2>反馈</h2>
        <p>在下面输入您要反馈的内容:</p>
        <textarea name="page" id="page" cols="30" rows="10"></textarea>
        <input type="submit" name="loge_submit" value="提交" />
        <input type="reset" name="reset_submit" value="清除" />
    </form>
</body>
</html>

运行结果如下:

1667058312337.jpg

另外可以通过添加属性maxlength=""来限制该文本区域允许输入的最大字符数,还可以通过添加readonly>属性,在readonly>其后输入内容,使用户无法更改已经写入的文本。

<textarea name="" id="" cols="" rows="" maxlength="" readonly></textarea>


相关文章
|
2月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
155 2
|
2月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
45 0
|
2月前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
|
2月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
2月前
|
机器学习/深度学习 弹性计算 自然语言处理
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
105 1
|
2月前
|
前端开发 算法 测试技术
前端大模型应用笔记(五):大模型基础能力大比拼-计数篇-通义千文 vs 文心一言 vs 智谱 vs 讯飞vsGPT
本文对比测试了通义千文、文心一言、智谱和讯飞等多个国产大模型在处理基础计数问题上的表现,特别是通过链式推理(COT)提示的效果。结果显示,GPTo1-mini、文心一言3.5和讯飞4.0Ultra在首轮测试中表现优秀,而其他模型在COT提示后也能显著提升正确率,唯有讯飞4.0-Lite表现不佳。测试强调了COT在提升模型逻辑推理能力中的重要性,并指出免费版本中智谱GLM较为可靠。
前端大模型应用笔记(五):大模型基础能力大比拼-计数篇-通义千文 vs 文心一言 vs 智谱 vs 讯飞vsGPT
|
2月前
|
XML 前端开发 JavaScript
前端开发进阶:从HTML到React.js
【10月更文挑战第9天】前端开发进阶:从HTML到React.js
|
2月前
|
前端开发 JavaScript 数据安全/隐私保护
【前端基础篇】HTML零基础速通2
【前端基础篇】HTML零基础速通
20 2
|
3月前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
4月前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
45 0