首页 > 其他分享 >12. HTML-- 表单:<form>标签

12. HTML-- 表单:<form>标签

时间:2022-09-29 16:13:44浏览次数:52  
标签:控件 12 定义 -- 表单 HTML 提交 属性

1. 前言

当您想要通过网页来收集一些用户的信息(例如用户名、电话、邮箱地址等)时,就需要用到 HTML 表单。表单可以接收用户输入的信息,然后将其发送到后端应用程序,例如 PHP、Java、Python 等,后端应用程序将根据定义好的业务逻辑对表单传递来的数据进行处理。

表单属于 HTML 文档的一部分,其中包含了如输入框、复选框、单选按钮、提交按钮等不同的表单控件,用户通过修改表单中的元素(例如输入文本,选择某个选项等)来完成表单,通过表单中的提交按钮将表单数据提交给后端程序。

在 HTML 中创建表单需要用到<form>标签,具体语法如下所示:

<form action="URL" method="GET|POST">
    表单中的其它标签
</form>

对属性的说明:

  • action 属性用来指明将表单提交到哪个页面;
  • method 属性表示使用哪个方式提交数据,包括 GET 和 POST 两种方式,它们两者的区别如下:
    • GET:用户点击提交按钮后,提交的信息会被显示在页面的地址栏中。一般情况下,GET 提交方式中不建议包含密码,因为密码被提交到地址栏,不安全。
    • POST:如果表单包含密码这种敏感信息,建议使用 POST 方式进行提交,这样数据会传送到后台,不显示在地址栏中,相对安全。

2. 表单属性

HTML 为<form>标签提供了一些专用的属性,如下表所示:

属性可选值描述
accept MIME_type HTML5 中不再支持,设置服务器要接收的文件类型
accept-charset character_set 设置表单数据的字符集(默认为 HTML 文档字符集)
action URL 设置要将表单提交到何处(默认为当前页面)
autocomplete on、off 设置是否启用表单的自动完成功能(默认开启)
enctype application/x-www-form-urlencoded、
multipart/form-data、
text/plain
设置在提交表单数据之前如何对数据进行编码(适用于 method="post" 的情况)
method get、post 设置使用哪种 HTTP 方法来提交表单数据(默认为 get)
name text 设置表单的名称
novalidate novalidate 如果使用该属性,则提交表单时不进行验证
target _blank、_self、_parent、_top 设置在何处打开 action 属性设定的链接(默认为 _self)


action 和 method 是最常用的两个属性。

3. 表单控件

表单用来收集用户数据,这些数据需要填写在各种控件中。HTML 控件也通过标签来实现,只是它们会呈现一些特殊的外观,并具有一些交互功能。

HTML 表单中可以包含如下表所示的控件:

控件/标签描述
<input> 定义输入框
<textarea> 定义文本域(一个可以输入多行文本的控件)
<label> 为表单中的各个控件定义标题
<fieldset> 定义一组相关的表单元素,并使用边框包裹起来
<legend> 定义 <fieldset> 元素的标题
<select> 定义下拉列表
<optgroup> 定义选项组
<option> 定义下拉列表中的选项
<button> 定义一个可以点击的按钮
<datalist> 指定一个预先定义的输入控件选项列表
<keygen> 定义表单的密钥对生成器字段
<output> 定义一个计算结果


这里我们不再一一列举各种控件的用法,请读者点击链接跳转到对应页面学习,下面我们通过一个完整的示例来演示一下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML form表单演示</title>
</head>
<body>
    <form action="./userinfo.php" method="POST">
        <!-- 文本输入框控件 -->
        <label>用户名: </label><input name="username" type="text"><br>
        <!-- 密码框控件 -->
        <label>密 码: </label><input name="password" type="password"><br>
        <!-- 下拉菜单控件 -->
        <label>性 别:</label>
        <select name="sex">
            <option value="1">男</option>
            <option value="2">女</option>
            <option value="3">未知</option>
        </select>
        <br>
        <!-- 复选框控件 -->
        <label>爱 好:</label>
        <input type="checkbox" name="hobby" value="1">听音乐
        <input type="checkbox" name="hobby" value="2">看电影
        <input type="checkbox" name="hobby" value="3">打游戏
        <br>
        <!-- 单选按钮控件 -->
        <label>学 历:</label>
        <input type="radio" name="education" value="1">小学
        <input type="radio" name="education" value="2">中学
        <input type="radio" name="education" value="3">本科
        <input type="radio" name="education" value="4">硕士
        <input type="radio" name="education" value="5">博士
        <br>
        <!-- 按钮 -->
        <input type="submit" value="提 交">  
        <input type="reset" value="重 置">
    </form>
</body>
</html>

运行结果如下图所示:

HTML form表单演示
图1:HTML form 表单演示


填写好用户数据,点击“提交”按钮,即可使用 POST 方式将数据提交到当前目录下的 userinfo.php 页面,在服务器端通过 PHP 代码可以接收提交的数据。

标签:控件,12,定义,--,表单,HTML,提交,属性
From: https://www.cnblogs.com/jiajunling/p/16741912.html

相关文章

  • element-ui v-table 复选框默认选中
    <el-tableref="refTable":data="list"v-loading="listLoading"element-loading-text="加载中"fithighlight-current-ro......
  • 定义 stack 和 queue 时可以干的事情
    STLstack,queue内部用deque实现,可以用一些方式规避掉这个问题。stack<int,vector<int>>s;queue<int,list<int>>q;signedmain(){ q.push(1),q.push(2); cout<<q......
  • debian/ubuntu下安装nodejs npm
    wgethttps://nodejs.org/dist/v16.17.1/node-v16.17.1-linux-x64.tar.xz nodejs官网下载地址,目前最新版,以后有更新就换新的地址,wget下来,解压tar-xvfnode-v16.17.1-li......
  • NanoGUI教程-NanoGUI的使用
    使用C++在C++中有两种有效的方法可以使用NanoGUI:让NanoGUI初始化和管理OpenGL上下文(和GLFW),或者手动执行。如果让NanoGUI接管,则必须先调用NanoGUI::init(),然后再尝试执......
  • VMware16的安装及VMware配置Linux虚拟机(详解版)
    何故Mhttps://blog.csdn.net/m0_50519965/article/details/116175873?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166443741016782388011505%2522%252C%25......
  • CF149D Coloring Brackets
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglongclasssolve{ public: chars[777]; intf[1000][1000][3][3]; intmod; intothers[1000......
  • 迅为龙芯2K1000核心板国产Linux工业板卡适用于工控电力能源行业方案
     龙芯2k1000采用40nm工艺,片内集成2个GS264处理器核,主频1GHz,64位DDR3控制器,以及各种系统IO接口。       商业级参数           ......
  • 22.实例:利用JS点击百度翻译
    Dimtemp,hWeb,sRet,待翻译的文字//变量赋值待翻译的文字="早上好"//绑定浏览器hWeb=WebBrowser.BindBrowser("chrome",10000,{"bContinueOnError":false,"......
  • python argparse使用及常用环境
    简介argparse是python中用来方便获取命令行参数的模块,也可以很方便的做一个简单的命令行参数的设定,例如ls-h等后面加参数的情况,可以自己创建一个支持命令行参数的命令......
  • JavaScript ES6常用基础知识总结
    ​ES6let与const及其相关块级作用域ES6新增了块级作用域,总结一句话大致就是:大括号{}包起来的代码块基本山都可以当做块级作用域。常见的有直接使用{}包起来:{vara=4}函数......