注意:手机(APP)打开,内容显示更佳,不会的私聊博主即可
想要拿代码或加入学习计划(** 博主会监督你并且教你写文章 **)的拉到最下面(PC端Web打开)加博主即可,目录也在最下面。
参加1_bit博主前端学习计划发文时在头部记得加上本专栏链接,示例如下:
我已加入 1_bit 博主的免费前端 站起来 学习计划,专栏链接:https://blog.csdn.net/a757291228/category_11609526.html
一、表单的使用
1.1 表单基础
🐶1_bit:这一节咱们开始表单的学习。
👸小媛:表单是啥?
🐶1_bit:表单其实咱们平常都用过,例如你在一个网页中输入一些内容,然后用过注册,信息上传,其实在很多网页之中这都是使用表单进行制作的。
👸小媛:哇,意思说这一节说到核心内容了?
🐶1_bit:哈哈哈,其实每一节的内容都很核心,所以需要认真学习呢。那咱们现在就开始学习表单吧。
👸小媛:好勒。
🐶1_bit:在 HTML 中,表单的标签是 form 标签,例如如下代码示例就是一个表单。
<form></form>
👸小媛:那他们之间要写什么内容呢?
🐶1_bit:先不急,咱们需要先搞懂的还有一个重要的属性,那就是 action,action 属性表示当前表单需要提交到的一个地址。
👸小媛:这个地址是什么意思呢?
🐶1_bit:在咱们的 web 开发中,网页只是给予用户呈现的一个页面,例如一个注册页面,在这个页面之中,用户需要填写对应的信息点击提交完成注册,当点击提交之后,这个页面的将会把信息给予到 action 属性所对应的一个 url(链接)之中。
👸小媛:所以说 action 后面就是填写一个链接咯?
🐶1_bit:对的,由于咱们目前没有一个地址给予测试,咱们可以写成如下示例。
<form action=""></form>
👸小媛:明白了。
🐶1_bit:现在咱们还需要给予这个表单一个 name 属性,例如如下示例。
<form name="register" action=""></form>
👸小媛:如果不给这个 name 属性呢?
🐶1_bit:当然你可以给或者不给,但是建议给,因为你所提交到后台(action 中的 url 地址 )时,你的信息会有一定的标记,当然有些时候不给也没事,但是为了标准,防止弄错,所以需要给一个name,这样就可以通过你给的name 值区分你这个表单提交的是什么了;像在如上示例,给予了一个 register 作为名称,那么就知道这个表单中的信息是用于注册的。
👸小媛:明白了。
🐶1_bit:表单还需要给予一个属性,那就是 method 属性,这个属性表示了这个表单提交数据到后台时所采用的方式,可以选择 get 或者 post。
👸小媛:get 和 post 是啥?
🐶1_bit:这是两种数据提交的方式,你也可以认为一种数据提交的方式是 get,另外一种数据提交的方式是 post,这两种数据提交方式默认为 get,但是 get 相比 post 提交方式来说并没有 post 那么安全;当然,使用哪种数据提交的方式一般是后端程序员会告诉你,这个你不用着急。
👸小媛:那怎么写呢?
🐶1_bit:如下就是使用 method 数据提交的示例。
<form name="register" action="" method="post"></form>
🐶1_bit:表单还可以用于上传文件,这个时候就需要有一个属性叫做 enctype,如果你需要上传文件(包括图片),必须设置 enctype 属性为 enctype=“multipart/form-data”,例如如下示例。
<form name="register" action="" method="post" enctype="multipart/form-data"></form>
👸小媛:明白了,那这个 enctype 还有别的属性吗?这个属性是自己随便写的还是?
🐶1_bit:enctype 自带了 3 种属性,分别是 text/plain 、 multipart/form-data 、application/x-www-form-urlencoded
,默认是 application/x-www-form-urlencoded
;其中 text/plain
是表示纯文本数据提交、multipart/form-data
就是表示有文件数据上传 、 application/x-www-form-urlencoded
默认。
👸小媛:意思说我正常情况下默认就可以不用动了对吧。
🐶1_bit:是这样的。其中 from 表单还可以添加一个 target 属性,点击提交按钮后可以选择新窗口打开还是当前页面打开,这个前几节已经讲过,在此就不再进行赘述了。
👸小媛:好,明白了。
二、表单控件
2.1 文本输入框
🐶1_bit:那么接下来咱们就看看咱们表单之中有哪些控件。
👸小媛:啥是控件?
🐶1_bit:你可以理解为表单之中的元素,当然理解有点片面,不过也没啥问题。
👸小媛:哈哈哈,你意思就是说“现在说了我也不明白的意思”。
🐶1_bit:哈哈,先这样解释后面你就懂了。表单中的元素有多种,例如文本输入框、选项、图片上传等。一个简单的文本输入的表单示例如下。
<form name="register" action="" method="post" enctype="application/x-www-form-urlencoded"><input name="username" type="text" />
</form>
👸小媛:咦?其中的 input 就是控件吗?
🐶1_bit:对的,input 就是控件,在网页中显示如下。
👸小媛:哈哈哈,这阵的是一个文本框呀。
🐶1_bit:对的,还有一个需要注意,input 标签中的 name 建议一定要给予,当你在这个 input 标签所显示在页面的输入框中输入内容后,点击提交的内容进入后台时,需要通过你输入的name 值进行值的判断,也就是说,你输入的 name 值用于标识当前数据是什么内容。在当前示例中,我所示例的 name 值为 username,也就是说当前的 username 这个名称与这个输入框的值进行标记。
👸小媛:原来如此,明白了。
🐶1_bit:还有一个也需要注意,其中的 type 属性表示当前控件的类型,你写成 text 那么就对应的是文本输入框类型。
👸小媛:明白了,那还可以选择什么类型的控件呢?
🐶1_bit:先别急,咱们还可以为这个文本设置对应的属性值,例如。
<form name="register" action="" method="post" enctype="application/x-www-form-urlencoded"><input size="30" placeholder="请输入内容" name="text1" type="text" /><input value="默认值" placeholder="请输入不大于3位的内容" name="text2" type="text" /><input placeholder="请输入不大于6位的密码" maxlength="6" name="pw" type="password" />
</form>
👸小媛:哇,这些都有什么用呢?
🐶1_bit:以上示例中,size 属性表示了当前这个 input 的长度、 placeholder 表示提示语、maxlenght 表示了当前所能填写内容的最大长度、value 表示了表单的默认值、type=“password” 表示了当前表单输入为密码。
👸小媛:明白了,输入值也是看不见的样子。
2.2 radio 单选项
🐶1_bit:那咱们接下来再看看 radio 类型,也就是单选项。
<form name="register" action="" method="post" enctype="application/x-www-form-urlencoded"><input size="30" placeholder="请输入内容" name="text1" type="text" /><input value="默认值" placeholder="请输入不大于3位的内容" name="text2" type="text" /><input placeholder="请输入不大于6位的密码" maxlength="6" name="pw" type="password" /><br/><input name="radio1" type="radio" value="mianbao" /> 面包 <br/><input name="radiox1" type="radio" value="baozi" /> 包子 <br/><input name="radio1" type="radio" value="shengjianbao" /> 生煎包 <br/><input name="radio2" type="radio" value="xigua" /> 西瓜 <br/><input name="radio2" type="radio" value="yumi" /> 玉米 <br/><input name="radio2" type="radio" value="danbaizhi" /> 蛋白质 <br/>
</form>
🐶1_bit:以上内容中使用 name 值用于区分不同的单选项组,其中相同的name 值 name="radio1"
为一组,另一组为 name="radio2"
,没组内容为单选项。
👸小媛:真的耶,选了一下确实只能选择一个。
👸小媛:那那个vaule 是啥呢?
🐶1_bit:这个 value 就表示你选择的每一项的值,当表单提交后就会提交你选中的 value 值。
👸小媛:原来如此。
2.3 复选项
🐶1_bit:既然有了单选项那么必然会有复选项,例如如下示例。
<form name="register" action="" method="post" enctype="application/x-www-form-urlencoded"><input size="30" placeholder="请输入内容" name="text1" type="text" /><input value="默认值" placeholder="请输入不大于3位的内容" name="text2" type="text" /><input placeholder="请输入不大于6位的密码" maxlength="6" name="pw" type="password" /><br/><input name="radio1" type="radio" value="mianbao" /> 面包 <br/><input name="radio1" type="radio" value="baozi" /> 包子 <br/><input name="radio1" type="radio" value="shengjianbao" /> 生煎包 <br/><input name="radio2" type="radio" value="xigua" /> 西瓜 <br/><input name="radio2" type="radio" value="yumi" /> 玉米 <br/><input name="radio2" type="radio" value="danbaizhi" /> 蛋白质 <br/><input name="checkbox1" type="checkbox" value="chdd" /> 成华大道 <br/><input name="checkbox1" type="checkbox" value="erxq" /> 二仙桥 <br/><input name="checkbox1" type="checkbox" value="jiji" /> 大爷 <br/>
</form>
👸小媛:复选框就是 checkbox,明白了,并且还可以进行复选。
🐶1_bit:是的,这些标签如果你要用做 form 表单标签你就必须放在 form 表单之内,这样提交后才有效,如果你不用做表单也可以直接添加在 html 文档之中。
👸小媛:明白了。
2.4 file 文件上传
🐶1_bit:接下来咱们了解一下上传文件的 input 类型 file,如下所示。
<input name="file" type="file" />
👸小媛:此时在页面中如下显示。
🐶1_bit:只需要选择浏览,就可以选择文件了。
👸小媛:奥耶,不错不错。
2.5 多行文本输入框
🐶1_bit:你就负责喊 666 就好了。接下来咱们再来看一个 textarea,你可以理解为多行文本。
<textarea name="textarea" cols="20" rows="10">
👸小媛:其中 cols 属性为列、rows为行吧?
🐶1_bit:是的,这是在页面中的显示情况。
👸小媛:但是我发现点击右下角可以拖动这个多行文本框耶。
🐶1_bit:这个你可以使用一个样式,就可以禁止拖动了。
<textarea style="resize: none;" name="textarea" cols="20" rows="10">
👸小媛:明白了,右下角的拖动按键消失了。
2.6 重置按钮
🐶1_bit:接下来咱们再看一个重置按钮 rest。
<input type="reset" value="重置">
🐶1_bit:点击后即可重置输入的内容。
👸小媛:真方便。
2.7 按钮
🐶1_bit:那现在咱们就介绍一下提交按钮了,只需要把 input 的类型提交成 submit 就可以了。
<input type="submit" value="提交按钮">
👸小媛:点击这个按钮就可以直接提交表单了吗?
🐶1_bit:是的,也有普通的按钮,叫做 button,如下所示。
<button>普通按钮</button>
👸小媛:这两个按钮还有什么别的区别吗?
🐶1_bit:应该说相对于 input 的 submit 按钮,button 按钮更加灵活,在 button 按钮之中还可以嵌入一些图片,并且让图片具有按钮特性,例如如下所示。
<button><img src="./img/1.png"></button>
🐶1_bit:此时这个图片就有按钮的特性了。
👸小媛:哇,我喜欢用button。
🐶1_bit:哈哈哈,我也喜欢。其实对于表单来说,只要咱们将一些有信息内容的标签丢到其中,给予name 标签,那么这些对应的标签所对应的值都将随着表单进行提交。
👸小媛:原来是这么回事,所以这些标签就像刚刚你说的那样,不一定需要写在 form 之中。
🐶1_bit:对的。所以这一节的内容大致就学完了,你可以自己按照想法做一个问卷,用表单来做试一下。
2.8 下拉列表
👸小媛:可是我学的内容还没那么多呀,下拉列表我就不会。
🐶1_bit:那我就教你吧,下拉列表使用 select 标签,每一个选项在其内部使用 option 标签,如下所示。
<select name="ccc"><option value="xc">小吃</option><option value="ls">零食</option><option value="kqs">矿泉水</option><option value="gz">瓜子</option><option value="hs">花生</option><option value="bbz">八宝粥</option>
</select>
👸小媛:select 就是下拉选项标签?然后 option 放在里面就是选项?
🐶1_bit:是的,然后你要放在表单内的话你需要给 select 一个name 值,然后每个 option 一个 value 值属性。
👸小媛:明白了,看见效果了。
👸小媛:欧了。
目录
【前端就业课 第一阶段】HTML5 零基础到实战(九)列表
【前端就业课 第一阶段】HTML5 零基础到实战(八)表单详解
【前端就业课 第一阶段】HTML5 零基础到实战(七)文字及图片样式
【前端就业课 第一阶段】HTML5 零基础到实战(六)表格详解
【前端就业课 第一阶段】HTML5 零基础到实战(五)基础元素
【前端就业课 第一阶段】HTML5 零基础到实战(四)伪类与伪元素
【前端就业课 第一阶段】HTML5 零基础到实战(三)一篇文CSS基础入门
【前端就业课 第一阶段】HTML5 零基础到实战(二)超链接
【前端就业课 第一阶段】HTML5 零基础到实战(一)基础代码结构详解