HTML5的表单(form)介绍
HTML 表单(form)介绍
HTML5的表单(form)介绍
HTML 表单(form) 在网页中主要负责数据采集功能,利用表单可以实现与用户的交互,比如收集浏览者的信息或实现搜索等功能。
表单(form)标签格式:
<form 表单标签的属性>
表单元素
</form>
表单标签的属性
除了通用属性 id 、 style 、 class 外,还有:
action:规定当提交表单时,向何处发送表单数据。action取值为:第一,一个URL(绝对URL/相对URL),一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理。比如<form action="http://www.cnblogs.com/reg.ashx">,当用户提交这个表单时,服务器将执行网址"http://www.cnblogs.com/"上的名为"reg.ashx"的一般处理程序。第二,使用mailto协议的URL地址,这样会将表单内容以电子邮件的形式发送出去。这种情况比较少见的,因为它要求访问者的计算机上安装和正确设置好了邮件发送程序。第三,空值,如果action为空或不写,表示提交给当前页面。
method:该属性定义浏览器将表单中的数据提交给服务器处理程序的方式。关于method的取值,最常用的是get和post,如 method="post"。第一,使用get方式提交表单数据,Web浏览器会将各表单字段元素及其数据按照URL参数格式附在<form>标签的action属性所指定的URL地址后面发送给Web服务器;由于URL的长度限制,使用get方式传送的数据量一般限制在1KB以下。第二,使用post方式,浏览器会将表单数据作为HTTP请求体的一部分发送给服务器。一般来说,使用post方式传送的数据量要比get方式传递的数据量大;根据HTML标准,如果处理表单的服务器程序不会改变服务器上存储的数据,则应采用get方式(比如查询),如果表单处理的结果会引起服务器上存储的数据的变化,则应该采用post方式(比如增删改操作)。由于我对这些了解的不多,就不多言语了。
target:该属性规定在何处显示action属性中指定的URL所返回的结果。取值有_blank(在新窗口中打开)、_self(在相同的框架中打开,默认值)、_parent(在父框架中打开)、_top(在整个窗口中打开)和framename(在指定的框架中打开)。
title:设置网站访问者的鼠标放在表单上的任意位置停留时,浏览器用小浮标显示的文本。
enctype:规定在发送到服务器之前应该如何对表单数据进行编码。取值:默认值为 "application/x-www-form-urlencoded",在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值);“multipart/form-data”:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
name:表单的名称。注意和id属性的区别:name属性是和服务器通信时使用的名称;而id属性是浏览器端使用的名称,该属性主要是为了方便客户端编程,而在css和javascript中使用的。
表单元素
表单元素(form elements),也称为表单控件(form controls):
单行文本框<input type="text" >
密码框<input type="password"/>
单选按钮<input type="radio" name=""/>
复选框<input type="checkbox"/>
隐藏域<input type="hidden"/>
文件上传<input type="file"/>
下拉框<select>标签
多行文本<textarea></textarea>
提交按钮<input type="submit"/>
普通按钮<input type="button"/>
重置按钮<input type="reset"/>
下面简要介绍几个表单元素的使用。
Input标签定义输入控件。语法:
<input type="input元素类型" name="input元素名称" value="textinput元素的值" />
Input标签属性 | 说明 |
type | 指定元素的类型。text(文本框)、password(密码框)、checkbox(复选框)、radio(单选按钮)、submit(提交按钮)、reset(重置按钮)、file(文件上传)、hidden(隐藏域)、image(图像形式的提交按钮) 和 button(按钮),还有:email(电子邮箱)、url(网址)、number(数字输入框,带微调按钮)、range(滑动条)、date(选取日期)、time(选取时间)、datetime(选取日期时间) |
name | 指定表单元素的名称 |
value | 元素的初始值。type 为 radio时必须指定一个值 |
size | 指定表单元素的初始宽度。当 type 为 text 或 password时,表单元素的大小以字符为单位。对于其他类型,宽度以像素为单位 |
maxlength | type为text 或 password 时,输入的最大字符数 |
checked | type为radio或checkbox时,指定按钮是否是被选中 |
select(列表框)
<select> 标签下拉列表
其中的 <option> 标签用于定义列表中的可用选项。例如:
<select name="contry">
<option value="none">--选择国家--</option>
<option value="usa">美国</option>
<option value="en">英国</option>
<option value="cn" selected="selected">中国</option>
</select>
textarea(多行文本域)
<textarea> 标签定义多行的文本输入。可以通过 cols 和 rows 属性来规定 textarea 的列数——宽度(字符数)和行数,不过更好的办法是使用 CSS 的 height 和 width 属性。
下面给出比较完整的示例
例1、下面给出一个简单的表单示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表单示例</title>
</head>
<body>
<from>
输入名称:<input type="text" name="user" value=""/><br/>
输入密码:<input type="password" name="passwd" value=""/>
<br>
选择性别:<input type="radio" name="sex" vlaue="nan"/> 男 <input type="radio" name="sex" value="nv" checked="checked"/> 女
<br>
选择技术:
<input type="checkbox" name="tech" value="java"/>Java
<input type="checkbox" name="tech" value="html"/>html
<input type="checkbox" name="tech" value="css"/>CSS
<br>
选择文件:
<input type="file" name="file" />
<br>
一个按钮:<input type="button" value="有个按钮" onclick="alert('有个按钮')">
<br>
<select name="contry">
<option value="none">--选择国家--</option>
<option value="usa">美国</option>
<option value="en">英国</option>
<option value="cn" selected="selected">中国</option>
</select>
<br>
<textarea name="text">可以是多行文本</textarea>
<from>
</body>
</html>
保存文件名为:表单例1.html
运行效果如下图:
例2、结合CSS和JavaScript的表单示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>简单学生信息管理</title>
<!-- 样式 -->
<style>
table {
margin: auto;
width: 80%;
background-color: #d9ffdc;
/* 表格背景色 */
text-align: center;
border-collapse: collapse;
}
caption {
font-size: 28px;
line-height: 50px;
color: blue;
}
th {
background-color: #00a40c;
/* 表头背景色 */
color: #FFF;
/* 表头文字颜色 */
}
th,td {
border: 1px solid #00a40c; padding: 6px;
}
.btn {
color: #FFFFFF;
font-size: 16px;
font-weight: bold;
width: 90px;
height: 36px;
border-radius: 6px;
background-color: forestgreen;
}
body {
text-align: center;
}
#add {
/*width:270px ;
height: 290px;*/
display: none;
position: absolute;
border: 1px solid darkgreen;
padding:5px 20px 20px 15px;
border-radius: 6px;
background-color: #d9ffdc;
text-align: right;
}
h3 {
text-align: left;
}
#close{
float: right;
color: lightcoral;
}
.text {
padding: 0 10px;
color: #777777;
font-weight: bold;
margin: 6px;
height: 30px;
}
</style>
</head>
<body>
<table id="cj">
<caption> 简单学生信息表</caption>
<tr>
<th>学号</th>
<th>姓名 </th>
<th>性别</th>
<th>住址</th>
<th>删除</th>
</tr>
</table>
<input type="button" value="增 加" id="addInfo" class="btn" />
<!--动态添加表单 -->
<div id="add">
<h3> 添加信息 <span title="关闭" id="close">Χ</span></h3>
<form name="addForm">
学号:<input name="id" class="text" /><br>
姓名:<input name="user" class="text" /><br>
性别:<input name="Gender" class="text" /><br>
住址:<input name="address" class="text" /><br>
<input type="button" value="确 定" id="qd" class="btn" />
<input type="reset" value="重 置" class="btn" />
</form>
</div>
<!-- JS -->
<script>
var tab = document.getElementById('cj');
//设置表格奇数行和偶数行背景颜色
function strRow() {
var len = tab.rows.length;
for(var i = 0; i < len; i++)
if(i % 2)
tab.rows[i].style.backgroundColor = "lightgreen"
else
tab.rows[i].style.backgroundColor = "#d9ffdc";
}
strRow();
//删除指定行
function del(r) {
var i = r.parentNode.parentNode.rowIndex;
document.getElementById('cj').deleteRow(i);
strRow();
}
var btQd = document.getElementById("qd");//通过id属性获取“确定”按钮。
var add = document.getElementById("add");//通过id属性获取“增加信息”对话框。
var btAdd = document.getElementById("addInfo");//通过id属性获取“增加”按钮。
btQd.onclick = function() {
insRow();
add.style.display = "none";
}
btAdd.onclick = function() {
add.style.display = "block";
show();
}
//不显示(隐藏)动态添加表单
document.getElementById("close").onclick = function() {
add.style.display = "none";
}
//插入新行数据
function insRow() {
rs = tab.insertRow(tab.rows.length);
var c0 = rs.insertCell(0);
var c1 = rs.insertCell(1);
var c2 = rs.insertCell(2);
var c3 = rs.insertCell(3);
var c4 = rs.insertCell(4);
c0.innerHTML = addForm.id.value; // 新增行的第1个单元格赋值
c1.innerHTML = addForm.user.value; // 新增行的第2个单元格赋值
c2.innerHTML = addForm.Gender.value; // 新增行的第3个单元格赋值
c3.innerHTML = addForm.address.value; // 新增行的第4个单元格赋值
c4.innerHTML = '<span onclick="del(this)">删除</span>'; //第5个单元格
strRow()// 隔行变色
}
//动态添加表单居中显示
function show() {
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
var top = (h - 260) / 2;
var left = (w - 300) / 2;
add.style.top = top + 'px';
add.style.left = left + 'px';
}
window.onresize = function() {
show();
};
</script>
</body>
</html>
保存文件名为:表单例2.html
运行效果如下图:
网页前后端交互技术
前端通常会通过后端(后台)提供的接口来获取数据来完成前端页面的渲染。
对于一个站点,用户看得到的只是前端网站的一部分,网站的大多数情况是看不到的,这些看不到的就是后端。后端包括程序设计架构、数据库管理、处理相关的业务逻辑等。
web前端开发是在构建用户界面,相比前端开发,后端开发需要花更多的时间来实现算法和解决问题上。web后端开发跟sql数据库打交道比较多,也就是web后端开发就是从数据库或者其他数据源写入、读取、处理数据。还需要了解PHP、web框架、ASP.NET、WVC等,还有缓存技术(cookie、session、localstorage、cashe-controller等)。
本文不打算深入网页前后端交互技术,在此给出一个参考示例网址
https://www.cnblogs.com/nrm1/p/6146981.html
附录
HTML 标签参考手册 https://www.w3schools.cn/tags/
更多推荐
所有评论(0)