常用表单
<form action="向何处发送表单数据" method="get或post">
<input type="button" value="">
<!--
A 属性 type :定义输入框的类型
a 文本框 type="text"
b 密码框 type="password"
C 提交框 type="submit"
D 按钮框 type="button" 单纯按钮
E 重置框 type="reset" 清空内容
B 属性 placeholder :描述输入字段预期值的提示信息(兼容到IE8以上)
C 属性 name :必须设置,否则在提交表单的时候,用户在其中输入的数据不会被发送到服务器
D 属性 value :
-->
</form>
form 当中method的post和get的区别?
- get是从服务器上获取数据,post是向服务器传送数据
- get是把参数数据队列加到提交表单的action属性所指的url中,值和表单内各个字段一一对应,在url中可以看到;post是通过Http post机制,将表单内各个字段与其内容放置在html header内一起传送到action属性所指的url地址,用户看不到这个过程
- 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据
- get传送的数据量较小,不能大于2KB,post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4(Internet Information Service 互联网信息服务)中最大量为80KB,IIS中为100KB
- get安全性非常低,post安全性较高,但是执行效率却比post方法好
表单进阶
- hidden 隐藏功能,一般是用于要带给后端的个人信息,不面向客户端用户开放的内容
- 图片按钮 - 功能是用一个图片代替提交按钮 type="sunmit"
- 两个关键属性:disabled 禁用 readonly 只读,这两个属性都是不能修改的
- (1)select 多选表单,支持属性:size 显示的选项数量;multiple 允许多选; (2)option 多选项目,支持属性:selected 默认选中;value 供后台识别的选中项代号
- 文本域 textarea:cols="30" rows="10" 一般用css的width和height替代;placeholder 提示文字;默认value 不是通过value属性给出,而是写在标签内,因此注意标签代码中的空格
- 字段集 fieldset legend 就是提供一个比较特殊的边框组合样式,可通过CSS修改样式
<!-- 1. hidden 隐藏功能,一般是用于要带给后端的额个人信息,不面向客户端用户开放的内容 -->
<input type="hidden" name="" id="" value="带个后端的个人信息...">
<!-- 2. 图片按钮 - 功能是用一个图片代替提交按钮 type="sunmit" -->
<input type="image" src="./提交.png">
<!-- 3. 两个关键属性:disabled 禁用 readonly 只读,这两个属性都是不能修改的 -->
<input type="text" name="user_name" id="user_name" readonly>
<input type="text" name="user_sex" id="user_sex" disabled>
<!--
4. select 多选表单,支持属性:
size 显示的选项数量
multiple 允许多选
option 多选项目,支持属性:
selected 默认选中
value 供后台识别的选中项代号
-->
<select name="houseTool" id="houseTool" size="2" multiple>
<option value="desk">桌子</option>
<option value="sofa" selected>沙发</option>
<option value="chair">椅子</option>
<option value="chopsticks">筷子</option>
</select>
<!-- 5. 文本域 textarea
cols="30" rows="10" 一般用css的width和height替代
placeholder 提示文字
默认value 不是通过value属性给出,而是写在标签内,因此注意标签代码中的空格
-->
<textarea name="comment" id="comment" placeholder="请输入你的意见"></textarea>
<!-- 6. 字段集 fieldset legend 就是提供一个比较特殊的边框组合样式,可通过CSS修改样式 -->
<fieldset>
<legend>表单 - 字段集</legend>
<input type="radio" name="destination" id="des_USA"><label for="des_USA">USA</label>
<input type="radio" name="destination" id="des_UK"><label for="des_UK">UK</label>
</fieldset>
表单H5新增功能
| type="新增属性" | 功能说明 |
|---|---|
| color | 生成一个颜色选择的表单 |
| tel | 唤起拨号盘表单 |
| search | 搜索意义的表单 |
| range | 滑动条表单 |
| number | 数值表单 |
| 限制用户必须输入email类型 | |
| url | 限制用户必须输入url类型,会提示输入网址 |
| date | 可选择年月日 |
| month | 可选择年月 |
| week | 可选择年和第几周 |
| datetime-local | 选择本地时间,可精确到年月日时分秒 |
| time | 限制必须输入时间类型 |
数据列表/选项列表 datalist标签
数据列表是指当在搜索框输入一个字段的时候,在搜索框下方弹出显示的相关数据列表,与input结合使用。
<!-- input的list属性与datalist的id属性相关联 -->
<input id="myCar" list="cars" />
<datalist id="cars">
<option value="BMW">
<option value="Ford">
<option value="Volvo">
</datalist>
表单H5新增属性
- autofocus 属性:给文本框、选择框、或者按钮空间加上该属性,当打开网页时,该控件自动获得焦点,一个页面只起效一个
- required 属性:验证输入不能为空
- multiple 属性:可以输入一个或多个值,每个值之间用逗号隔开(邮箱常用)
- pattern 属性:将属性值设置为某个格式的正则表达式,在提交时会检查内容是否符合规定格式
<input type="text" pattern="[0-9][A-Z]{3}" placeholder="格式要求:一个数字和三个大写字母" />
属性 maxlength
- 功能:The
maxlengthattribute defines the maximum number of characters (as UTF-16 code units) the user can enter into an<input>or<textarea>. This must be an integer value 0 or higher.
<input type="password" maxlength="4" />
表单实例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
/* 如何更改 input 拾色器的外观*/ /* 火狐 不兼容*/
/* ::-webkit-color-swatch-wrapper 设置拾色器的外层包括的边框带样式
* input[type="color"]::-webkit-color-swatch-wrapper {padding: 0;} 消除外边框带*/
.input_color[type='color']::-webkit-color-swatch-wrapper{padding: 0;}
/* ::-webkit-color-swatch 设置内层的边框(放置从拾色器选取的颜色)样式,颜色改变的地方
* input[type='color']::-webkit-color-swatch {border:0;} 去掉剩下的黑色边框 */
.input_color[type='color']::-webkit-color-swatch{border: 0;border-radius: 10px;}
</style>
</head>
<body>
<div style="display: flex;margin: 0 auto;flex-direction: row;align-items: center;justify-content: space-around;width:500px;">
<input type="button" name="begin" value="enter the form" onclick="func_begin()" />
<form action="index.html" method="get">
<input type="search" name="search_res" placeholder="输入搜索关键字"/>
<input type="submit" name="submit_search" value="🔍" style="border: none;">
</form>
<!--//事件onmousemove,鼠标在某个元素上移动时触发-->
<input type="range" id="justify" name="justify" value="20" max="800" min="20" onmousemove="func_justify()"/>
<input type="color" class="input_color" name="bgcolor" id="bgcolor" value="#f5f5f5" onchange="func_bgcolor()"
style="border: 0;width: 50px;height: 15px; padding: 0;" />
</div>
<form id="major_form" action="chart.html" method="get">
<!-- 字段集:fieldset legend -->
<fieldset id="field" disabled
style="width:500px;height: 20px;margin: 0 auto;line-height: 240%;background: whitesmoke;overflow: hidden;border-radius: 10px;">
<legend style="font-family: STkaiti;text-align: justify;">个人信息</legend>
<input type="text" name="your_name" placeholder="input your name" size="50" /><br/>
<!--在移动端触屏移动端使用,用于唤起数字输入键盘,并不能限定只输入纯数字-->
<input type="tel" name="telephone" placeholder="input 11 numbers" size="50" maxlength="11" required/>*<br/>
<input type="email" name="mail" placeholder="input valid email" size="50" required="required"/>*<br/>
<input type="password" name="pwd" size="50" maxlength="8" placeholder="input 8 points password" required/>*<br />
<b style="font-size: 15px;">请选择生日</b>
<input type="date" max="2018-12-31" /><br />
<b style="font-size: 15px;">请选择性别</b>
<input type="radio" name="sex" id="male" value="male" checked /><label for="male">男</label>
<input type="radio" name="sex" id="female" value="female" /><label for="female">女</label><br />
<b style="font-size: 15px;">请选择年级</b>
<input type="checkbox" name="major" id="onelevel" value="onelevel" checked/><label for="onelevel">一级</label>
<input type="checkbox" name="major" id="twolevel" value="twolevel" /><label for="twolevel">二级</label>
<input type="checkbox" name="major" id="threelevel" value="threelevel" /><label for="threelevel">三级</label>
<input type="checkbox" name="major" id="fourlevel" value="fourlevel" /><label for="fourlevel">四级</label><br />
<input type="file" name="file" value='上传个人资料' size="50" multiple/><br />
<b style="font-size: 15px;">请选择英语等级</b>
<input type="number" name="englevel" step="2" max="8" min="4" value="4"/><br/>
<b style="font-size: 15px;">请选择填表时间</b>
<input type="time" name="input_time" id="input_time" value="18:56"/><br/>
<b style="font-size: 15px;">请选择成果验收周</b>
<input type="week" name="input_week" id="input_week" value="2018-W52"/><br />
<b style="font-size: 15px;">请输入作品网页</b>
<input type="url" name="page_url" id="page_url" placeholder="请输入网址" /><br/>
<input type="hidden" id="reminder_text" name="reminder_text" size="60" style="text-align:center;height: 15px;border-radius: 50%;border: 0;" value="非常重要:注册成功后不能修改!" disabled></input><br />
<input type="checkbox" id="confirm_reminder" name="confirm_reminder" hidden="hidden" required="required"/>
<label for="confirm_reminder" id="confirm_reminder_label" hidden="hidden">确认提示</label>
<input type="reset" value="重置" />
<!--函数名不要设置得与变量名、id值、name值相同,否则容易报错-->
<input type="submit" value="提交" onclick="reminder()"/>
</fieldset>
</form>
</body>
</html>
<script>
//实现表格解封,开始输入
function func_begin(){
//将fieldset里面的表单更改为能够使用(去掉disabled属性)
document.getElementById('field').disabled = null
//input[type='range']跳至最大
document.getElementById('justify').value = document.getElementById('justify').max
//表格自动展开至最大幅度
document.getElementById('field').style.height = document.getElementById('justify').value + 'px'
}
//实现当调节range幅度时,自动调节表格的展开程度
function func_justify(){
var jus = document.getElementById('justify').value
document.getElementById('field').style.height = jus+'px'
}
//实现当点击input[type='color']时,自动调节表格内部的背景颜色
function func_bgcolor(){
document.getElementById('field').style.background = document.getElementById('bgcolor').value
}
function reminder(){
document.getElementById('reminder_text').type = 'text'
document.getElementById('confirm_reminder').hidden = null
document.getElementById('confirm_reminder_label').hidden = null
}
</script>