HTML/CSS 备忘录 - 05. HTML 表单
bigegpt 2024-09-22 00:41 3 浏览
一、表单的基本结构
HTML 表单,一个包含交互的区域,用于收集用户提供的数据。
<form action="/" method="post">
<!-- 文本输入框 -->
<label for="name">用户名:</label>
<input type="text" id="name"
name="name" required>
<!-- 密码输入框 -->
<label for="password">密码:</label>
<input type="password" id="password"
name="password" required>
<!-- 提交按钮 -->
<input type="submit" value="提交">
</form>
<form> 元素,用于创建表单:
- action 属性:表单数据提交的 URL,可被 <button>、<input type="submit"> 、<input type="image"> 元素上的 formaction 属性覆盖。
- method 属性:提交数据的 HTTP Method,如 post | get 等。
- enctype 属性:当 method 值为 post 时,其表示将表单的内容提交给服务器的 MIME 类型,如 application/x-www-form-urlencoded(默认值)、multipart/form-data(表单包含 <input type=file> 元素时使用此值)。
- target 属性:提交表单之后,在哪里显示响应信息,_self(默认)| _blank 等。
- novalidate 属性:表单提交的时候不再进行验证。(HTML5 新增)
<input> 元素,用于创建交互控件,如文本框、密码框、单选按钮、复选框等:
- type 属性:表单控件的类型。
- name 属性:表单控件的名称,作为键值对的一部分与表单一同提交。
- value 属性:表单控件的初始值。
- disabled 属性:表单控件是否禁用。
- form 属性:将控件与表单ID进行关联。(HTML5 新增)
- required 属性:布尔值,表示该元素为表单必填项。(hidden、range、color 和按钮无该属性,H5新增)。
- autofocus 属性:布尔属性。当页面加载时 <input> 元素应该自动获得焦点。(HTML5 新增)
- autocomplete 属性:自动填充特性提示(除了 checkbox、radio 和按钮以外,HTML5 新增)
<label> 元素,表示用户界面中某个元素的说明:
- for 属性:指定表单控件的 ID,用于将 label 元素与表单控件进行绑定。
二、常用输入控件
1. 单行文本输入框
<!-- 普通单行文本输入框 -->
<input type="text"
name="username" value="liwy" />
<!-- 密码输入框 -->
<input type="password" />
<!-- 搜索输入框(HTML5 新增) -->
<input type="search"
id="site-search" name="q" />
<!-- 邮箱类型输入框,默认校验格式(HTML5 新增) -->
<input type="email"
id="email" size="30" required
pattern=".+@example\.com" />
<!-- 电话类型输入框(HTML5 新增) -->
<input type="tel"
id="phone" name="phone" required
pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
<!-- URL类型输入框,默认校验格式(HTML5 新增) -->
<input type="url"
id="url" name="url" size="30" required
placeholder="https://example.com"
pattern="https://.*" />
- size 属性:控件的尺寸。
- maxlength 属性:输入框最大可输入字符数(value)。
- minlength 属性:输入框最小字符数。
- pattern 属性:正则约束条件。(HTML5 新增)
- placeholder 属性:提示文案。(HTML5 新增)
2. 隐藏域
用户不可见的一个输入区域,作用是: 提交表单的时候,携带一些固定的数据。
<input type="hidden" name="tag" value="100" />
3. 单选框/复选框
<!-- 单选框 -->
<input type="radio" name="sex"
value="female" checked />女
<input type="radio" name="sex"
value="male" />男
<!-- 复选框 -->
<input type="checkbox" name="hobby"
value="smoke" />抽烟
<input type="checkbox" name="hobby"
value="drink" checked />喝酒
<input type="checkbox" name="hobby"
value="perm" />烫头
- name 属性:数据的名称,每组单选框或者复选框的 name 值需要相同。
- value 属性:提交的数据值。
- checked 属性:让该单选按钮默认选中。
- required 属性:如果含有相同 name 的单选按钮组中任意一个按钮包含 required 属性,那么该组的单选按钮必须被选定。(HTML5 新增)
4. 文件选择
<input type="file"
id="avatar"
name="avatar"
accept="image/png, image/jpeg" />
- accept 属性:定义了 file 上传控件可选择文件类型,它是一个以逗号间隔的文件扩展名和 MIME 类型列表。
- multiple 属性:布尔值。是否允许一次选择多个文件。(HTML5 新增)
5. 数值与时间(HTML5 新增)
<!-- 数字类型的输入框,默认校验格式 -->
<input type="number" id="tentacles"
name="tentacles" min="10" max="100" />
<!-- 范围选择框,默认 50 -->
<input type="range" id="volume"
name="volume" min="0" max="11" />
<!-- 日期选择框 -->
<input type="date" id="start"
name="trip-start" value="2018-07-22"
min="2018-01-01" max="2018-12-31" />
<!-- 时间选择框 -->
<input type="time" id="appt" name="appt"
min="09:00" max="18:00" required />
<!-- 日期+时间选择框 -->
<input type="datetime-local"
id="party" name="partydate"
value="2017-06-01T08:30" />
<!-- 周选择框 -->
<input type="week" id="week" name="week"
min="2018-W18" max="2018-W26" required />
<!-- 月选择框 -->
<input type="month" id="start" name="start"
min="2018-03" value="2018-05" />
- max 属性:最大值。
- min 属性:最小值。
- step 属性:增量值。
6. 文本域
<textarea id="story" name="story"
rows="5" cols="33">
今天天气真不错... ...
</textarea>
- id 属性:允许与 <label> 元素关联。
- name 属性:用于设置表单提交时发送至服务器的数据项名称。
- cols 属性:文本控件的可见宽度,以平均字符宽度为单位。若已指定,其值必须为正整数。若未指定,默认值为 20。
- rows 属性:显示控件的指定的可见文本行数,其值必须为正整数。若未指定,默认值为 2。
- disabled 属性:此布尔属性表示用户无法与控件交互。
- maxlength 属性:输入框最大可输入字符数。(HTML5 新增)
- minlength 属性:要求用户输入的最小字符串长度。(HTML5 新增)
- required 属性:布尔值,表示该元素为表单必填项。(HTML5 新增)
- placeholder 属性:提示文案。(HTML5 新增)
- form 属性:将控件与表单ID 进行关联。(HTML5 新增)
- autofocus 属性:当页面加载时,文本区域自动获得焦点。(HTML5 新增)
- autocomplete 属性:此属性指示浏览器是否可以自动完成控件的值,on|off(HTML5 新增)
- wrap 属性:指示控件应如何对表单提交时的值进行换行,soft | hard(HTML5 新增)
7. 下拉框
<select name="from">
<option value="黑">黑龙江</option>
<option value="辽">辽宁</option>
<option value="吉">吉林</option>
<option value="粤" selected>广东</option>
</select>
<!-- 带分组的下拉框 -->
<select name="pets">
<optgroup label="4-legged pets">
<option value="dog" disabled>Dog</option>
<option value="cat">Cat</option>
<option value="hamster">Hamster</option>
</optgroup>
<optgroup label="Flying pets">
<option value="parrot">Parrot</option>
<option value="macaw">Macaw</option>
<option value="albatross">Albatross</option>
</optgroup>
</select>
<!-- 数据列表, HTML5 新增 -->
<input list="browsers">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
<select> 标签创建下拉列表:
- id 属性:允许与 <label> 元素关联。
- name 属性:指定数据的名称。
- size 属性:规定下拉列表中可见选项的数目。
- multiple 属性:布尔值。是否允许一次选择多个文件。
- disabled 属性:此布尔属性表示用户无法与控件交互。
- required 属性:布尔值,表示该元素为表单必填项。(HTML5 新增)
- form 属性:将控件与表单ID 进行关联。(HTML5 新增)
- autofocus 属性:当页面加载时,文本区域自动获得焦点。(HTML5 新增)
- autocomplete 属性:此属性指示浏览器是否可以自动完成控件的值,on | off(HTML5 新增)
<option> 标签定义下拉列表中的一个选项:
- value 属性:这个属性的值表示该选项被选中时提交给表单的值。如果省略了这个属性,值就从选项元素的文本内容中获取。
- selected 属性:规定选项(在首次显示在列表中时)表现为选中状态。
- disabled 属性:规定此选项应在首次加载时被禁用。
- label 属性:用于表示选项含义的文本。如果 label 属性没有定义,它的值就是元素文本内容。
<optgroup> 标签经常用于把相关的选项组合在一起。
- label 属性:选项组的名字,浏览器用以在用户界面中标记选项。使用这个元素时必须加上这个属性。
- disabled 属性:如果设置了这个布尔值,则不能选择这个选项组中的任何选项。
<datalist> 数据列表,可用于搜索框的关键字提示(HTML5 新增)
- 除全局属性为无其他属性
三、按钮
<!-- 普通按钮 -->
<input type="button" value="点我" />
<button type="button">点我</button>
<!-- 提交按钮 -->
<input type="submit" value="点我提交表单" />
<button type="submit">点我提交表单</button>
<!-- 图形化的提交按钮 -->
<input type="image" id="image" alt="Login"
src="./res/login-button.png" />
<button type="submit">
<img src="./res/login-button.png" />
</button>
<!-- 重置按钮 -->
<input type="reset" value="点我重置">
<button type="reset">点我重置</button>
<button> 元素比 <input> 元素更容易使用样式。你可以在元素内添加 HTML 内容(像 <em>、<strong> 甚至 <img>)。
<input type="submit"> / <input type="image"> / <button type="submit"> 除了 <input> 公共属性外,还支持的额外属性:
- formaction 属性:一个字符串,指示要将数据提交到的 URL,会覆盖 <form> 上的 action 属性(HTML5 新增)
- formenctype 属性:一个字符串,标识在将表单数据提交到服务器时要使用的编码方法,会覆盖 <form> 上的 enctype 属性。(HTML5 新增)
- formmethod 属性:一个字符串,指示提交表单数据时要使用的 HTTP 方法;会覆盖 <form> 上的 method 属性。(HTML5 新增)
- formnovalidate 属性:布尔属性,如果存在,则指定在提交给服务器之前不应对表单进行验证。会覆盖 <form> 上的 novalidate 属性。(HTML5 新增)
- formtarget 属性:一个字符串,指定一个名字或关键词来表示在提交表单后在何处显示响应数据。会覆盖 <form> 上的 target 属性。(HTML5 新增)
<input type="image"> 特有属性:
- src 属性:提交按钮上显示的图像的 URL。
- width 和 height 属性:设置图片的宽高。
- alt 属性:提供一个备用字符串,在图像无法加载的情况下作为按钮的标注。
<button> 的其他属性:
- type 属性:button 的类型。可选值:submit | reset | button。
- disabled 属性:布尔属性,表示用户不能与 button 交互。
- form 属性:表示 button 元素关联的 form 元素(HTML5 新增)
- autofocus 属性:布尔属性,用于指定当页面加载时按钮必须有输入焦点(HTML5 新增)
四、fieldset 表单控件分组
<fieldset>
<legend>Personalia:</legend>
Name: <input type="text"><br>
Email: <input type="text"><br>
Birth: <input type="text">
</fieldset>
<fieldset> 对表单中的相关元素进行分组:
- name:fieldset 的名称。(HTML5 新增)
- disabled :规定该组中的相关表单元素应该被禁用。(HTML5 新增)
- form:fieldset 所属的一个或多个表单。(HTML5 新增)
<legend> 定义分组标题。
相关推荐
- Dify「模板转换」节点终极指南:动态文本生成进阶技巧(附代码)Jinja2引擎解析
-
这篇文章是关于Dify「模板转换」节点的终极指南,解析了基于Jinja2模板引擎的动态文本生成技巧,涵盖多源文本整合、知识检索结构化、动态API构建及个性化内容生成等六大应用场景,助力开发者高效利用模...
- 我用C#造了个AI程序员:自动调试+重构代码实战
-
在软件开发的世界里,调试和重构代码往往占据了程序员大量的时间。我一直梦想着能有一个智能助手,帮我处理这些繁琐的工作。于是,我决定用C#打造一个AI程序员,让它具备自动调试和重构代码的能力。系统架构设计...
- 公文自动排版vba代码(公文自动排版vba代码)
-
Sub公文自动排版()'设置页面参数(单位:厘米)WithActiveDocument.PageSetup.TopMargin=CentimetersToPoints(3.7)...
- Anthropic最强代码神器:Claude Code系统提示词
-
最近,在融合Opus-4之后,ClaudeCode的整体能力直线飙升.甚至一度把曾经的最强开发工具——Cursor打的抬不起头来。无论是代码生成的准确度,还是智能补全的丝滑体验,都让人印象深...
- 使用 Ruff 进行 Python 代码格式化与静态检查
-
随着Python项目的规模增大,保持一致的代码风格和高质量的代码变得尤为重要。Ruff是一个现代、高性能、支持lint和格式化的Python工具,能帮助你快速发现并修复常见代码问题。本文...
- 基础语法篇:格式化输出 含完整示例代码
-
所谓格式化输出就是按照一定格式来输出对应的内容,在Python的语法中格式化输出包含两种:格式化符号、格式化字符串一、格式化符号常用的格式化符号包括%s(将内容转换为字符串,放入占位位置)、%d(将内...
- 代码整洁如诗!Keil 插件上线,一键格式化代码,告别风格混乱!
-
引言:代码格式不统一?你的团队还在为“括号位置”吵架吗?嵌入式开发者们,你是否经历过这些抓狂瞬间?代码风格“百花齐放”:同事的代码缩进用空格,你的用Tab,合并时冲突频发!手动调整耗时费力:为了通过C...
- [信捷PLC] 信捷PLC之C函数编程(一)
-
前言写PLC程序,越来越觉得结构化文本编程语言(ST)给PC编程带来的便利,在处理一些数据上,可以写的更加灵活。所以,在项目PLC选型上,我都会优先选择支持结构化文本的PLC。国内有些厂商推出了一些较...
- C语言-HelloWorld解析(c语言的helloworld怎么写)
-
使用VisualStudio2017开发工具新创建一个项目,编写第一个C语言程序。#include<stdio.h>voidmain(){printf("HelloW...
- VSCode 配置 C++ 开发环境!教程详解
-
第一步、安装VSCode应用程序打开VSCode官网,下载对应安装包并默认安装(这里指明:安装路径可以修改)第二步、安装相关插件此时的VSCode仅仅是一个英文文本编辑器,还称不上开发工具,所以需要...
- C语言进阶教程:C语言与汇编语言交互
-
C语言和汇编语言的交互是底层编程和性能优化中的一个重要方面。理解它们如何协同工作,可以帮助开发者更好地控制硬件、优化关键代码段以及理解编译器的行为。为什么需要在C语言中嵌入汇编?尽管C语言已经提供了相...
- C语言如何处理平台相关代码(c语言的开发平台)
-
在进行跨平台C编程时,不可避免地会遇到需要针对不同操作系统或硬件架构编写特定代码的情况。C语言通过预处理器指令,特别是条件编译指令,为我们提供了处理平台相关代码的有效机制。最常用的就是利用预定义的宏(...
- C语言:hello world(c语言helloworld代码)
-
环境:a.初学者建议用“啊哈C”,这款软件简单易装;b.devc.visualstdiod.Vc6.0第一行代码:#include<stdio.h>#<stdio.h&g...
- C语言之编译器集合(编写c语言编译器)
-
C语言有多种不同的编译器,以下是常见的编译工具及其特点:一、主流C语言编译器1.GCC(GNUCompilerCollection)特点:开源、跨平台,支持多种语言(C、C++、Fortran...
- 适合零基础初学者学习C语言第一课教程,揭开C语言的神秘面纱
-
一、C语言简介我刚接触编程,首先想要学习的就是C语言,这次我就把我的感悟用我自己理解的文字表述出来,这样对刚学C语言的人来说,才是比较友好的。因为我们都没有C语言的基础,不懂啥是编程,啥事代码。我们...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)