表单的工作原理

简单来说就是客户在浏览器输入信息之后,浏览器将用户在表单中的数据进行打包发送给服务器,服务器接收到之后进行处理,如下图

语法

<form>
表单元素
</form>

form标签的属性

常用的表单元素以下这些

<input />    表单输入标签
<select > 菜单和列表标签
<option > 菜单和列表项目标签
<textarea > 文字域标签
<optgroup> 菜单和列表项目分组标签

input标签

语法

<input type="类型属性" name="名称" ....  />

常用的type的类型属性都有

text        文字域
password 密码域
file 文件域
checkbox 复选域
radio 单选域
button 按钮
submmit 提交按钮
reset 重置按钮
hidden 隐藏域
image 图像域

写一个简单的用户名密码和提交按钮

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>表单</title>
</head>
<body>
<form>
姓名:<input type="text" name="userName" />
密码:<input type="password" name="pwd" />
<input type="submit" />
</form>
</body>
</html>

打开上面的页面输入密码,发现密码是密文显示,我们见过,密码框后面有个小眼睛,点击之后就变成了明文,其实很简单,只是把type的属性password换成了text,后面学到js的时候,就能很容易的做出来这种效果

单行文本域的属性

name          文字域的名称
maxlength 指用户输入的最大字符长度
size 指定文本框的宽度,默认20个字符
value 指定文本框内的默认值
placeholder 规定用户填写输入字段的提示,文本框内浅灰色显示

完成以下的表单

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>表单</title>
</head>
<body>
<h1 align="center">表单提交</h1>
<hr color="#336699">
<form>
<table align="center">
<tr>
<td>姓名:</td>
<td><input type="text" name="userName" size="25" maxlength="6" placeholder="请输入姓名" /></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="email" value="qq.com"/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" placeholder="请输入密码" /></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="password" placeholder="请再次输入密码" /></td>
</tr>
<tr>
<td>上传文件:</td>
<td><input type="file" name="upFile" /></td>
</tr>
<tr>
<td>性别:</td>
<td>
<!-- name值相同才是单选,会将选中的value值提交到服务器,有checked的是默认选中的-->
男<input type="radio" name="sex" value="man" checked/>
女<input type="radio" name="sex" value="woman" />
</td>
</tr>
<tr>
<td>爱好:</td>
<td>
<!--复选框的name最好是相同(方便区分是哪组复选框),当然不同也可以,value是将选中的复选框提交给服务器的-->
唱歌<input type="checkbox" name="dx" value="sing"/>
跳舞<input type="checkbox" name="dx" value="dance"/>
读书<input type="checkbox" name="dx" value="read"/>
</td>
</tr>
<tr>
<td></td>
<td>
<!--button主要配置js来完成提交表单数据的功能-->
<input type="submit" name="sub" value="点我"/>
<input type="button" name="but" value="来点我" />
<input type="reset" name="res" value="reset" />
</td>
</tr> </table>
</form>
</body>
</html>

图像域

图像域是做什么的呢?我们发现上面的提交按钮都非常的丑陋,如果可以换一张 漂亮的图片也实现提交的功能,那多好呢,这时候就要用到图像域了

语法

<input type="image" name="..." src="data:imageurl" />

隐藏域

如果我们想往服务器上发送一些东西,但是不想让用户看到,这时候就要用到隐藏域了

语法

<input type="hidden" name="..." value="提交到服务器的信息">

下拉菜单和列表选项

语法

<select>
<option value="提交服务器的值">内容</option>
<option value="提交服务器的值">内容</option>
<option value="提交服务器的值">内容</option>
</select>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<form>
<select>
<!-- value是选中之后提交到服务器的值-->
<option value="bj">北京</option>
<option value="sh">上海</option>
<option value="zj">浙江</option>
<option value="gs">甘肃</option>
<option value="lz">兰州</option>
<option value="ln">陇南</option>
<option value="am">澳门</option>
<option value="xg">香港</option>
</select>
</form>
</body>
</html>

上面的代码运行后,发现只能选择一个,而且页面只显示了一个选项,如果想选多项就要了解下select的属性了

select的属性

name      设置下拉菜单和列表的名称
multiple 设置可选择多个选项
size 设置列表中可见选项的数目

option的属性

selected    设置选项默认选中状态
value 定义送往服务器的选项值
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<form>
<select>
<!-- value是选中之后提交到服务器的值-->
<option value="bj">北京</option>
<option value="sh">上海</option>
<option value="zj">浙江</option>
<option value="gs">甘肃</option>
<option value="lz">兰州</option>
<option value="ln" selected>陇南</option>
<option value="am">澳门</option>
<option value="xg">香港</option>
</select> <hr> <select size="4" multiple>
<option value="bj">北京</option>
<option value="sh">上海</option>
<option value="zj">浙江</option>
<option value="gs">甘肃</option>
<option value="lz">兰州</option>
<option value="ln">陇南</option>
<option value="am">澳门</option>
<option value="xg">香港</option>
</select>
</form>
</body>
</html>

下拉分组

上面的几种方法已经可以满足我们的大多数要求,但是如果我们想要达到下面的效果怎么办

这时候就要用到分组optgroup了

语法

<select size="8" multiple>
<optgroup label="分组名">
<option value="...">内容</option>
<option value="...">内容</option>
<option value="...">内容</option>
<option value="...">内容</option>
</optgroup>
<optgroup label="分组名">
<option value="...">内容</option>
<option value="...">内容</option>
<option value="...">内容</option>
<option value="...">内容</option>
</optgroup>
</select>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<form> <select size="8" multiple>
<optgroup label="中国">
<option value="bj">北京</option>
<option value="sh">上海</option>
<option value="zj">浙江</option>
<option value="gs">重庆</option>
</optgroup>
<optgroup label="甘肃">
<option value="lz">兰州</option>
<option value="ln">陇南</option>
<option value="am">陇西</option>
<option value="xg">陇北</option>
</optgroup>
</select>
</form>
</body>
</html>

多行文本域textarea

有时候我们要在文本框里输入大段的文字怎么办,这时候input已经不能满足我们的需求了,我们就要使用textarea

语法

<textarea name="..." rows="..." cols="...">默认值</textarea>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<form>
<textarea>我说你</textarea>
</form>
</body>
</html>

点我

上面的代码是没有任何属性时的效果,大多数情况下我们都要给添加下属性

textera的属性

name           设置文本区的名称
placeholder 设置文本框内的提示,浅灰色
rows 设置文本框的可见行数
cols 设置文本框的可见宽度

给上面的代码添加上属性

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<form>
<textarea placeholder="请输入介绍" rows="6" cols="80"></textarea>
</form>
</body>
</html>

HTML基础(五)表单的更多相关文章

  1. Bootstrap<基础六> 表单

    Bootstrap 通过一些简单的 HTML 标签和扩展的类即可创建出不同样式的表单. 表单布局 Bootstrap 提供了下列类型的表单布局: 垂直表单(默认) 内联表单 水平表单 垂直或基本表单 ...

  2. Vue学习计划基础笔记(五) - 表单输入绑定、组件基础

    表单输入绑定.组件基础 目标: 熟练掌握vue中表单的处理方式 对之前学习的内容简单回顾一下,并写一个实例,学以致用(最好脱离文档) vue中表单的处理方式 vue中表单的处理使用了v-model指令 ...

  3. [jQuery学习系列五 ]5-Jquery学习五-表单验证

    前言最近总是有一个感觉,虽然这些东西都自己学习并一个案例一个案例的去验证过了.但是总觉得不写成博客记录下来这些都不是自己的东西(心理作用,哈哈).所以每当学习或者复习相关的知识我都喜欢记录下来,下面开 ...

  4. 【ASP.NET 基础】表单和控件

    1.HTML表单的提交方式 对于一个普通HTML表单来说,它有两个重要的属性:action 和 method.action属性指明当前表单提交之后由哪个程序来处理,这个处理程序可以是任何动态网页或者 ...

  5. 玩转Django2.0---Django笔记建站基础七(表单与模型)

    第七章 表单与模型 表单是搜集用户数据信息的各种表单元素的集合,作用是实现网页上的数据交互,用户在网站输入信息,然后提交到网站服务器端进行处理(如数据录入和用户登录.注册等). 用户表单是web开发的 ...

  6. HTML基础2 表单和框架

    表单: <form id="" name="" method="post/get" action"负责处理的服务端" ...

  7. html基础之 表单提交方法

    最普通最常用最一般的方法就是用submit type..看代码: <form name=”form” method=”post” action=”#"> <input ty ...

  8. BootStrap 智能表单系列 五 表单依赖插件处理

    这一章比较简单哦,主要就是生产表单元素后的一些后续处理操作,比如日期插件的渲染.一些autocomplete的处理等,在回调里面处理就可以了, demo: $("input.date-pic ...

  9. 【HTML】 HTML基础知识 表单

    html 表单 表单的标签是<form>,用于给网站的后台提交数据.提交的数据格式原本是什么样不太清楚,以python的flask框架来看,我从表单中得到的数据是一个字典(flask.re ...

  10. 微信小程序基础之表单Form的使用

    表单Form的应用很广泛,我们可以利用form设计登录注册,也可以设计一种答题问卷的形式,今天主要讲一下form的使用 form表单,将组件内输入的"switch","i ...

随机推荐

  1. 【205】C#实现远程桌面访问

    参考:Remote Desktop using C#.NET 参考文件:TscForm.zip 本博客主要是讲述怎样用 .NET 平台中 Microsoft Terminal Services Cli ...

  2. CodeForces 1103D. Professional layer

    题目简述:给定$1 \leq n \leq 10^6$个正整数$1 \leq a_i \leq 10^{12}$,修改第$i$个正整数$a_i$的花费为$1 \leq e_i \leq 10^9$,以 ...

  3. HDU 5881 Tea (模拟)

    题意:有一壶水, 体积在 LLL 和 RRR 之间, 有两个杯子, 你要把水倒到两个杯子里面, 使得杯子水体积几乎相同(体积的差值小于等于1), 并且使得壶里剩下水体积不大于1. 你无法测量壶里剩下水 ...

  4. ORACLE PL/SQL 实例精解之第二章 通用编程语言基础

    通用编程语言基础 2.1PL/SQL编程基础 1. 字符类型:支持四中类型字符:字母,数字,符号和空格,组合一个或多个字符就会创建一个词汇单元 2. 词汇单元 a.标识符必须以字符开头 b.保留字是p ...

  5. 图像分类与KNN

    1 图像分类问题 1.1 什么是图像分类 所谓图像分类问题,就是已有固定的分类标签集合,然后对于输入的图像,从分类标签集合中找出一个分类标签,最后把分类标签分配给该输入图像.虽然看起来挺简单的,但这可 ...

  6. SCUT - 254 - 欧洲爆破 - 概率dp - 状压dp

    https://scut.online/p/254 思路很清晰,写起来很恶心. #include<bits/stdc++.h> using namespace std; #define l ...

  7. 51nod 1276 【离线化】

    思路1.: 离线处理: 具体就是把岛屿离线然后按照高度排序,把query按照从高到低排序,然后每次query只要从最高的岛屿开始找起,判断条件:如果他旁边都是没有被找过的(也就是默认是海),那么数量+ ...

  8. lightoj 1125【01背包变性】

    题意: 从n个数里选出m个来,还要使得这m个数之和被d整除. 给一个n和q,再给n个数,再给q个询问,每个询问包含两个数,d,m; 对于每个case输出每个q个询问的可行的方案数. 思路: 每个数只能 ...

  9. P5166 xtq的口令

    传送门 这题要是搞懂在干什么其实不难(虽然某个花了几个小时才搞明白的家伙似乎没资格这么说--) 假设所有人都没有听到老师的命令,我们从左到右考虑,对于当前的人,如果它没有观察者,那么肯定要让它听到老师 ...

  10. Django学习:url路由系统

    一.MTV模型 1.Django的MTV分别代表: Model(模型):和数据库相关的,负责业务对象与数据库的对象(ORM) Template(模板):放所有的html文件 模板语法:目的是将白变量( ...