HTML-3.4 表单form

本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

系列文章目录 

HTML-1.1 文本字体样式-字体设置、分割线、段落标签、段内回车以及特殊符号

HTML-2.1 文本字体样式之加粗、斜体、回车、下划线、上标标签、下标标签以及字号变小和变大

HTML-2.2 列表--无序列表、有序列表、定义列表

HTML-2.3 超链接-外部链接,内部链接,书签链接

HTML-2.4 滚动字幕marquee

HTML-3.1 表格table

 HTML-3.2 表格的跨行跨列(课表制作实例)

 HTML中应用CSS样式的三种常见方法  

HTML-3.3 表格布局(学校官网简易布局实例)

HTML-3.4 表单form

HTML-实战之 百度百科(影视剧介绍) 


目录

系列文章目录 

前言

一、表单 Form详解

1、基本结构

2、主要属性

3、常用表单控件

1. 输入框 (input)

2. 单选按钮 (radio) 和复选框 (checkbox)

3. 下拉选择框 (select)

4. 多行文本框 (textarea)

5. 按钮

6. 标签 (label)

4、表单分组 (fieldset 和 legend)

5、数据验证

6、样式和布局

7、现代表单技术

8、示例:完整表单

二、代码实例

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

一、表单 Form详解

HTML 表单 (<form>) 是网页中用于收集用户输入的重要元素,允许用户输入文本、选择选项、上传文件等,并将这些数据提交到服务器进行处理。

1、基本结构

<form action="/submit" method="post">
  <!-- 表单控件放在这里 -->
  <input type="text" name="username">
  <input type="submit" value="提交">
</form>

2、主要属性

  1. action - 指定表单数据提交的URL
  2. method - 提交数据时使用的HTTP方法(通常是getpost
  3. enctype - 指定表单数据编码方式(用于文件上传时需要设置为multipart/form-data
  4. target - 指定服务器响应显示的位置(如_blank在新窗口打开)
  5. autocomplete - 控制表单是否启用自动填充功能

3、常用表单控件

1. 输入框 (input)

<input type="text" name="username" placeholder="用户名">
<input type="password" name="pwd" placeholder="密码">
<input type="email" name="email" placeholder="邮箱">
<input type="number" name="age" min="1" max="120">
<input type="date" name="birthday">
<input type="file" name="avatar" accept="image/*">
<input type="hidden" name="token" value="abc123"> <!-- 隐藏字段 -->

2. 单选按钮 (radio) 和复选框 (checkbox)

<input type="radio" name="gender" value="male" checked> 男
<input type="radio" name="gender" value="female"> 女

<input type="checkbox" name="hobby" value="reading"> 阅读
<input type="checkbox" name="hobby" value="sports"> 运动

3. 下拉选择框 (select)

<select name="city">
  <option value="bj">北京</option>
  <option value="sh" selected>上海</option>
  <option value="gz">广州</option>
</select>


4. 多行文本框 (textarea)

<textarea name="message" rows="4" cols="50" placeholder="请输入留言..."></textarea>

5. 按钮

<button type="submit">提交</button>
<button type="reset">重置</button>
<button type="button" onclick="alert('点击')">普通按钮</button>

6. 标签 (label)

<label for="username">用户名:</label>
<input type="text" id="username" name="username">

<!-- 或者 -->
<label>
  <input type="checkbox" name="agree"> 我同意协议
</label>

4、表单分组 (fieldset 和 legend)

<fieldset>
  <legend>用户信息</legend>
  <!-- 表单控件 -->
</fieldset>

5、数据验证

HTML5 提供了内置的表单验证功能:

<input type="text" name="username" required minlength="3" maxlength="20">
<input type="email" name="email" required>
<input type="number" name="age" min="18" max="100">
<input type="url" name="website">
<input type="pattern" name="phone" pattern="[0-9]{11}" placeholder="11位手机号">

6、样式和布局

可以使用CSS美化表单:

form {
  width: 300px;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 5px;
}

input, textarea, select {
  width: 100%;
  padding: 8px;
  margin-bottom: 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

input[type="submit"] {
  background-color: #4CAF50;
  color: white;
  cursor: pointer;
}

7、现代表单技术

  1. HTML5 表单 API - 包括日期选择器、颜色选择器、范围滑块等
  2. FormData 对象 - 用于通过JavaScript构建表单数据
  3. AJAX 表单提交 - 使用XMLHttpRequest或Fetch API异步提交表单
  4. 表单验证API - 自定义验证逻辑

8、示例:完整表单

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单</title>
	</head>
	<body>
		<form action="/register" method="post" enctype="multipart/form-data">
		  <fieldset>
		    <legend>用户注册</legend>
		    
		    <div>
		      <label for="username">用户名:</label>
		      <input type="text" id="username" name="username" required minlength="3">
		    </div>
		    
		    <div>
		      <label for="pwd">密码:</label>
		      <input type="password" id="pwd" name="password" required>
		    </div>
		    
		    <div>
		      <label>性别:</label>
		      <input type="radio" id="male" name="gender" value="male" checked>
		      <label for="male">男</label>
		      <input type="radio" id="female" name="gender" value="female">
		      <label for="female">女</label>
		    </div>
		    
		    <div>
		      <label for="city">城市:</label>
		      <select id="city" name="city">
		        <option value="bj">北京</option>
		        <option value="sh">上海</option>
		        <option value="gz">广州</option>
		      </select>
		    </div>
		    
		    <div>
		      <label><input type="checkbox" name="agree" required> 我同意用户协议</label>
		    </div>
		    
		    <button type="submit">注册</button>
		    <button type="reset">重置</button>
		  </fieldset>
		</form>
		
	</body>
</html>

表单是Web开发中用户交互的核心组件,掌握表单的使用对于构建功能完善的网站至关重要。

二、代码实例

代码实例如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单form</title>
		<!-- 表单框架form -->
		<style type="text/css">
			img{
				position: absolute;
				left: 45%;
				top: 300px;
				width: 100px;
			}
			
		</style>
	</head>
	<body>
		<!-- 表单框架form -->
		<!-- action数据处理文件 -->
		<!-- method数据传输方式 post get -->
		<!-- <form action="hello.php" method="get">
		</form>-->
		<!-- input type类型 -->
		<!-- 边框fieldset 领域设置-->
		<!-- placeholder提示 disabled 只读 -->
		<!-- 单选框radio 设置同样的name -->
		<!-- 设置默认值checked=“checked” -->
		<!-- 下拉列表select option 设置默认值 selected="selected" -->
		<!-- 下拉列表为一组 select optgroup option -->
		<form action="hello.php" method="post" enctype="multipart/form-data"> <!-- 表单使用POST方法将数据提交到hello.php,使用<fieldset>和<legend>对表单内容进行分组和标题设置 -->
			<!-- enctype="multipart/form-data"用于指定表单数据在提交到服务器时的编码方式。这个属性特别重要,尤其是在表单需要上传文件时 -->
			<legend>个人信息调查表</legend>
			<fieldset >
				<legend>个人信息调查表</legend> 
	<!-- <legend> 元素用于为 <fieldset> 分组提供一个标题或描述。这个标题通常显示在 <fieldset> 的边框上,帮助用户理解该分组的目的 -->
				<label for="xm">1.姓名:</label>
				<input type="text" name="请输入你的姓名" id="xm"  /><br>
	<!-- 有一个文本输入框用于输入姓名,name属性使用了中文,虽然可以工作,但建议使用英文,使用了<label>标签关联输入框,提高了可访问性 -->
				2.账号:<input type="text" disabled="disabled" /><br> <!-- 禁用的文本输入框,用户无法修改 -->
				3.密码:<input type="password"  /><br>  <!-- 密码输入框,输入内容会显示为圆点或星号 -->
				4.性别:男生<input type="radio" name="xb"  value="1" /> 
				女生<input type="radio" name="xb"  value="0" /><br>
				<!-- 两个单选按钮共享相同的name属性,实现互斥选择,分别设置了不同的value值 -->
				5.兴趣爱好:唱歌<input type="checkbox" name="hobby"  value="11" />
				跳舞<input type="checkbox" name="hobby"  value="22" />
				打篮球<input type="checkbox" name="hobby"  value="33" /><br>
				<!-- 三个复选框,可以多选,共享相同的name属性,但通常建议为每个复选框使用不同的name或使用数组形式命名 -->
				6.出生日期:<input type="date" /><br>
				<!-- 使用了HTML5的日期选择器,下面的注释中展示了其他日期时间相关的输入类型 -->
				<!-- 6.出生日期:<input type="date-time" /> -->
				<!-- 6.出生日期:<input type="datetime-local" /> -->
				7.范围:0 <input type="range" value="10" />100 <br> <!-- 范围滑块,默认值为10,范围0-100 -->
				8.上传文件:<input type="file"  /><br> <!-- 文件上传控件 -->
				9.email:<input type="email" /><br>   <!-- 邮箱输入框,浏览器会进行基本的邮箱格式验证 -->
				10.地址:<!-- 两个下拉选择框,第二个下拉框使用了<optgroup>对选项进行分组 -->
				<select name="">         
					<option value="">临汾市</option>
					<option value="">大同市</option>
					<option value="" selceted="selected">太原市</option>
					<option value="">晋中市</option>
				</select>
				<select name="">
					<optgroup label="山西省">
						<option value="0359">临汾市</option>
						<option >大同市</option>
						<option value="0351">太原市</option>
						<option >晋中市</option>
					</optgroup>
					<optgroup label="陕西省">
						<option>西安市</option>
						<option >宝鸡市</option>
						<option selected="selected">渭南市</option>
					</optgroup>
				</select>
				<br>
				11.意见:<!-- 多行文本输入区域,设置了3行高和30列宽 -->
				<textarea name="" rows="3" cols="30"></textarea>
				<br>
				12.提交三种方式button submit images 
				<!-- 四种按钮:普通按钮(button)、提交按钮(submit)、图片提交按钮(image)、重置按钮(reset) -->
				<br>
				<input type="button" name="" id="" value="button" />
				<input type="submit" name="" id="" value="submit" />
				<input type="image" src="../img/提交.webp" width="50px" />
				<!-- button可以调用其他方法和事件 -->
				<!-- submit只可以提交 image相当于submit -->
				<input type="reset" name="" id="" value="重置按钮" /><br>
				
				
			</fieldset>
			
		</form>
		
	</body>
</html>

代码运行:

注:

文件上传前:

文件上传后:


总结

以上就是今天要讲的内容,本文简单记录了表单form,仅作为一份简单的笔记使用,大家根据注释理解

### YOLOv8 改进方法及性能提升技巧 #### 添加 SwinTransformer 注意力机制 为了增强模型对于复杂场景的理解能力,在YOLOv8中引入了Swin Transformer作为骨干网络的一部分。这种架构通过自注意力机制能够捕捉图像中的长距离依赖关系,从而显著提高了小物体检测的效果以及整体精度[^1]。 ```python from mmdet.models import build_detector, build_backbone class CustomYOLOv8(YOLOv8): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # 替换默认backbone为带有swin transformer的版本 self.backbone = build_backbone(dict( type='SwinTransformer', embed_dims=96, depths=[2, 2, 6, 2], num_heads=[3, 6, 12, 24], window_size=7)) ``` #### 双向特征金字塔 BiFPN 的应用 传统FPN仅支持单方向的信息传递,而BiFPN则实现了多尺度特征之间的双向融合。这不仅加强了不同层次间信息交流的有效性,还使得低层细节得以更好地保留下来用于最终预测阶段。实验表明该改动可以带来约1%-2% AP值的增长[^2]。 ```python import torch.nn as nn def add_bifpn(self): from mmcv.cnn.bricks import ConvModule layers = [] for i in range(2): # 堆叠两次BiFPN模块 layer = nn.ModuleDict({ f'top_down_{i}': TopDownPath(), f'bottom_up_{i}': BottomUpPath() }) layers.append(layer) return nn.Sequential(*layers) class TopDownPath(nn.Module): ... class BottomUpPath(nn.Module): ... ``` #### 创新性的 Head 设计与 Loss 函数调整 除了上述提到的技术外,《YOLOv8改进有效》专栏还探讨了许多其他方面的优化措施,比如设计更加高效的头部结构Head),采用更合理的损失函数形式等。这些改变共同作用下可以使模型达到更高的准确率并保持较快的速度表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值