单的作用就是采集用户填写的信息,将其发往服务器做相应的处理
表单的元素必须写在form标签中,一个form就是一个表单,表单中最重要的元素是input
input元素有一个type属性,type的可选值有:1)button(普通按钮)2checkbox(复选框)3text(单行文本框)4password(密码框)5radio(单选按钮)6image(图片按钮)7file(文件选择框)8hidden(隐藏字段)9<input type="file" />submit(提交按钮)10reset(重置按钮)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>表单元素</title>
</head>
<body>
<form action="http://www.bd.com/register.aspx" method="post">
用 户 名:<input type="text" value="张三" size="8" name="txtName" /><br /><br />
用户密码:<input type="password" size="8" /><br /><br />
用户性别:<input type="radio" name="rdGender" value="1" />男<input type="radio" name="rdGender"
value="0" />女<br /><br />
兴趣爱好:<input type="checkbox" value="0" checked="checked" />乒乓球<input type="checkbox" value="1" />篮球<input
type="checkbox" value="2" />排球<br /><br />
省市选择:省:<select>
<option value="0">北京</option>
<option selected="selected" value="1">河南</option>
<option value="2">河北</option>
</select>
市:<select>
<option value="0">密云</option>
<option selected="selected" value="1">郑州</option>
<option value="2">石家庄</option>
</select><br /><br />
上传文件:<input type="file" /><br/><br/>
<textarea cols="50" rows="10" readonly="readonly">
北京百度网讯科技有限公司
统一社会信用代码/注册号:91110000802100433B
注册资本:1342128万元
法定代表人:梁志祥
成立日期:2001-06-05
营业期限:2001-06-05 至 长期
企业类型:有限责任公司(自然人投资或控股)
注册地址:北京市海淀区上地十街10号百度大厦2层
经营范围:技术转让、技术咨询、技术服务、技术培训、技术推广;设计、开发、销售计算机软件;经济信息咨询;利用www.baidu.com、www.hao123.com(www.hao222.net、www.hao222.com)网站发布广告;设计、制作、代理、发布广告;货物进出口、技术进出口、代理进出口;医疗软件技术开发;委托生产电子产品、玩具、照相器材;销售家用电器、机械设备、五金交电(不含电动自行车)、电子产品、文化用品、照相器材、计算机、软件及辅助设备、化妆品、卫生用品、体育用品、纺织品、服装、鞋帽、日用品、家具、首饰、避孕器具、工艺品、钟表、眼镜、玩具、汽车及摩托车配件、仪器仪表、塑料制品、花、草及观赏植物、建筑材料、通讯设备、汽车电子产品、器件和元件、自行开发后的产品;预防保健咨询;公园门票、文艺演出、体育赛事、展览会票务代理;翻译服务;通讯设备和电子产品的技术开发;计算机系统服务;车联网技术开发;汽车电子产品设计、研发、制造(北京市中心城区除外);演出经纪;人才中介服;经营电信业务;利用信息网络经营音乐娱乐产品、演出剧(节)目、动漫产品、游戏产品(含网络游戏虚拟货币发行)、表演、网络游戏技法展示或解说(网络文化经营许可证有效期至2020年04月17日);因特网信息服务业务(除出版、教育、医疗保健以外的内容);图书、电子出版物、音像制品批发、零售、网上销售。(市场主体依法自主选择经营项目,开展经营活动;演出经纪、人才中介服务、利用信息网络经营音乐娱乐产品、演出剧(节)目、动漫产品、游戏产品(含网络游戏虚拟货币发行)、表演、网络游戏技法展示或解说、经营电信业务以及依法须经批准的项目,经相关部门批准后依批准的内容开展经营活动;不得从事国家和本市产业政策禁止和限制类项目的经营活动。)
</textarea><br /><br />
<input type="button" value="按钮" />
<input type="submit" value="提交" />
<input type="reset" value="重置" />
</form>
</body>
</html>
还有一些次要的表单元素以后需要用到再说;关于浏览器兼容性自己测试不再截图
绝大多数表单元素必须有name与value属性,这样的表单元素才能将此元素的的value值传递给服务器;如果method属性值为get,点击submit这个按钮时在网址中就能看到填写的值
如果是radio(单选按钮)name属性值必须一样,这样此元素值就会只能选择其中一个
button:只是一个普通按钮,以后会通过JavaScript进行操作;submit:自动将填写在此网页表单元素的值发送给action指定的服务器相应的程序去处理;reset:将表单元素中填入的值还原为默认值
HTML表单
现代web开发中,表单是用户与网站互动的重要方式之一。HTML5为表单提交提供了强大的功能和丰富的输入类型,让收集和验证用户输入数据变得更加容易和安全。本文将详细介绍HTML5表单的各个方面,包括基本结构、输入类型、验证方法和提交过程。
HTML表单由<form>标签定义,它可以包含输入字段、标签、按钮等元素。一个基本的表单结构如下所示:
<form action="/submit_form" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required>
<label for="email">电子邮箱:</label>
<input type="email" id="email" name="email" required>
<input type="submit" value="提交">
</form>
在这个例子中,表单有两个输入字段:姓名和电子邮箱。每个输入字段都有一个<label>标签,这不仅有助于用户理解输入的内容,也有助于屏幕阅读器等辅助技术。<form>标签的action属性定义了数据提交到服务器的URL,method属性定义了提交数据的HTTP方法(通常是post或get)。
HTML5提供了多种输入类型,以支持不同的数据格式和设备。
<!-- 单行文本 -->
<input type="text" name="username" placeholder="请输入用户名" required>
<!-- 密码 -->
<input type="password" name="password" required minlength="8">
<!-- 邮箱 -->
<input type="email" name="email" required placeholder="example@domain.com">
<!-- 搜索框 -->
<input type="search" name="search" placeholder="搜索...">
<!-- 数值 -->
<input type="number" name="age" min="18" max="100" step="1" required>
<!-- 滑动条 -->
<input type="range" name="volume" min="0" max="100" step="1">
<!-- 电话号码 -->
<input type="tel" name="phone" pattern="^\+?\d{0,13}" placeholder="+8613800000000">
<!-- 日期 -->
<input type="date" name="birthdate" required>
<!-- 时间 -->
<input type="time" name="appointmenttime">
<!-- 日期和时间 -->
<input type="datetime-local" name="appointmentdatetime">
<!-- 复选框 -->
<label><input type="checkbox" name="interest" value="coding"> 编程</label>
<label><input type="checkbox" name="interest" value="music"> 音乐</label>
<!-- 单选按钮 -->
<label><input type="radio" name="gender" value="male" required> 男性</label>
<label><input type="radio" name="gender" value="female"> 女性</label>
<!-- 下拉选择 -->
<select name="country" required>
<option value="china">中国</option>
<option value="usa">美国</option>
</select>
<!-- 颜色选择器 -->
<input type="color" name="favcolor" value="#ff0000">
<!-- 文件上传 -->
<input type="file" name="resume" accept=".pdf,.docx" multiple>
HTML5表单提供了内置的验证功能,可以在数据提交到服务器之前进行检查。
<input type="text" name="username" required>
<input type="text" name="zipcode" pattern="\d{5}(-\d{4})?" title="请输入5位数的邮政编码">
<input type="number" name="age" min="18" max="99">
<input type="text" name="username" minlength="4" maxlength="8">
当用户填写完表单并点击提交按钮时,浏览器会自动检查所有输入字段的有效性。如果所有字段都满足要求,表单数据将被发送到服务器。否则,浏览器会显示错误信息,并阻止表单提交。
<input type="submit" value="提交">
可以使用JavaScript来自定义验证或处理提交事件:
document.querySelector('form').addEventListener('submit', function(event) {
// 检查表单数据
if (!this.checkValidity()) {
event.preventDefault(); // 阻止表单提交
// 自定义错误处理
}
// 可以在这里添加额外的逻辑,比如发送数据到服务器的Ajax请求
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表单提交并显示JSON</title>
</head>
<body>
<!-- 表单定义 -->
<form id="myForm">
<label for="name">姓名:</label>
<input type="text" id="name" name="name">
<br>
<label for="email">电子邮件:</label>
<input type="email" id="email" name="email">
<br>
<input type="button" value="提交" onclick="submitForm()">
</form>
<script>
// JavaScript函数,处理表单提交
function submitForm() {
// 获取表单元素
var form = document.getElementById('myForm');
// 创建一个FormData对象
var formData = new FormData(form);
// 创建一个空对象来存储表单数据
var formObject = {};
// 将FormData转换为普通对象
formData.forEach(function(value, key){
formObject[key] = value;
});
// 将对象转换为JSON字符串
var jsonString = JSON.stringify(formObject);
// 弹出包含JSON字符串的对话框
alert(jsonString);
// 阻止表单的默认提交行为
return false;
}
</script>
</body>
</html>
在这个例子中:
注意,这个例子中我们使用了type="button"而不是type="submit",因为我们不希望表单有默认的提交行为。我们的JavaScript函数submitForm会处理所有的逻辑,并且通过返回false来阻止默认的表单提交。如果你想要使用type="submit",你需要在<form>标签上添加一个onsubmit="return submitForm()"属性来代替按钮上的onclick事件。
HTML5的表单功能为开发者提供了强大的工具,以便创建功能丰富、用户友好且安全的网站。通过使用HTML5的输入类型和验证方法,可以确保用户输入的数据是有效的,同时提高用户体验。随着技术的不断进步,HTML5表单和相关API将继续发展,为前端工程师提供更多的可能性。
多数PHP程序都使用HTML表单从用户那里获取数据并计算结果。
首先创造一个基本的HTML大纲,包含表单控件;然后将控件进行合并(HTML表单必须包括一个提交按钮,用户单击它可以将表单数据发送到服务器。)一个单独的HTML页面可以包含多个表单。
包含表单的HTML结构和和普通的HTML结构一样。
<HTML>
<HEAD>
<TITLE>标题放在这</TITLE>
</HEAD>
<BODY>
表单页面放在这
</BODY>
</HTML>
在包含表单的HTML页面中可以使用任何HTML标签。基本的表单使用FROM标签来说明。该标签中METHOD属性接收GET或POST两个值中的一个。ACTION属性子明PHP脚本的url,该脚本可以收集通过表单收集的数据,可以是绝对路径或者相对路径。
<FORM METHOD="method" ACTION="url">
中间可以放置表单控件
</FORM>
两个常用的基本控件:文本框和提交按钮。
文本框:允许用户键入信息以发送给PHP脚本。NAME属性为文本提供名称,PHP脚本可以通过名称准确访问其内容,因此它应该是唯一的且符合PHP变量命名规则(但不需要$符号),单标签。VALUE属性指明出现在提交按钮上面的标题。创建方式如下:
<INPUT TYPE = "TEXT" NAME="text">
提交按钮:允许用户将一个表单的内容发送到服务器,一个HTML表单对应应该有一个提交按钮。
示例:一个完整的HTML表单。
<HTML>
<HEAD>
<TITLE>标题</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
</FORM>
</BODY>
</HTML>
可以在一个HTML页面中包含多个表单,注意下一个表单的FORM开始之前需要结束前一个FORM表单。
<HTML>
<HEAD>
<TITLE>标题</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
<BR/>
<BR/>
</FORM>
<FORM METHOD="POST" NAME="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name1">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email1">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data1">
</FORM>
</BODY>
</HTML>
文本框的属性中,TYPE和NAME是必须的,其余是可选属性。SIZE属性用于设置文本框的可视大小;MAXLENGTH指明用户键入字符的最大长度;VALUE给出了一个最初显示在文本框中的值。
<input type="text" name="" size="" maxlength="" value="">
文本区域可以输入多行文本。NAME和ROWS属性是必须的。ROWS属性表明了文本区域内可以看到的文本行数,充满时会滚动。COLS属性指明可见文本列数与行数类似。WRAP属性指明文本区域内单词换行的方式,可以指定如下值。该标签为双标签。
值 | 说明 |
off | 禁止单词换行但用户可以输入换行符强制换行 |
virtual/soft | 各行显示为换行,但是换行并没有被发送到服务器 |
physica/hard | 启用了单词换行 |
<inputarea name="" rows="" cols="" wrap="">
创建密码框的语法与文本框相同,但要将TYPE属性指定为PASSWORD而不是TYPE。
<input type="password" name="" size="" maxlength="" value="">
取两个值中的一个,即二选一。TYPE属性是必须的,checked属性出现,该复选框默认情况会被选定。value属性指定复选框被选定情况下被发送到服务器的值,默认发送on值。法如下:
<input type="checkbox" name="" checked value="">
语法与复选框属性含义相同,但是TYPE属性的值必须是RADIO,NAME属性是必须的。
<input type="radio" name="" checked value="">
用户可以选择一个或者多个选项,它是一个滚动菜单。
<select name="" multipile size="">options go here</select>
name属性是必须的,multipile属性指明用户可以通过按下crtl键并单击多个选项来选择它们
列表框的单选行为可作为单选按钮。
<option selected value="text"></options>
<input type="hidden" name="text"value="">
<input type="FILE" name="name" accept="time" value="text">
其中type属性是必须的。格式通过使用MIME码指定。常用的格式如下:
超文本标记语言文本 .html,.html text/html
普通文本 :txt text/plain
word文档:application/msword
RTF文本 :rtf application/rtf
GIF图形 :gif image/gif
JPEG图形 :jpeg,
jpg: image/jpeg
au声音文件:au audio/basic
MIDI音乐文件 :mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
压缩文件.rar application/octet-stream
压缩文件.zip application/x-zip-compressed
TAR文件 .tar application/x-tar
<input type="image" src="url" name="text" align="align">
<input type="reset" value="text">
*请认真填写需求信息,我们会在24小时内与您取得联系。