HTML5之Form 表单应用

一、表单的作用

表单的作用是搜集用户的输入,用户提交表单时向服务器传输数据,从而实现用户与web服务器的交互。

二、表单属性

这个表单展示了form表单常用的属性

属性名 属性值 描述
action 一个url地址 指定表单提交到的地址
method GET , POST 表单将以此种方法提交到服务器
target * _self 当前页面 * _blank 每次在新窗口打开 * blank 每次在同一个新窗口打开 * _parent 父级frame * _top 顶级frame * iframename 指定的iframe 表单提交后,收到回复的页面
name - 一个html文档中,每个form的name应该是唯一的
enctype * application/x-www-form-urlencoded 默认值 * multipart/form-data 上传file用 * text/plain html5默认 以 POST 方式提交form时的MIME类型。文件上传必须使用 multipart/form-data
autocomplete on , off 是否自动完成表单字段
autocapitalize * none 完全禁用自动首字母大写 * sentences 自动对每句话首字母大写 * words 自动对每个单词首字母大写 * characters 自动大写所有的字母 iOS 专用属性,表单中文本域英文大小写
accept-charset 字符编码格式( utf-8 , gb-2312 等) 将会以此种编码格式提交表单到服务器,默认值是UNKONWN,即html文档所采用的编码格式。
novalidate true , false 是否启用表单校验

下面举例的表单将会以 post 方式将input的值以 utf-8 编码格式提交到 /login 接口,并会打开一个新页面显示返回结果,由于 target="blank" ,所以就算提交多次该表单,都只会继续刷新之前打开的窗口。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
</head>
<body>
  <form action="/login" method="post" target="blank" >
    <input type="text" name='username'>
    <button>提交</button>
  </form>
</body>
</html>

三、表单元素

1. 常见表单元素

常见的表单元素包括 input , select , textarea , button , progress 等,这些元素都有一些自己的属性

2. 表单元素的属性

属性 属性值 描述
type(必须) * text 单行文本框 * raido 单选框 * checkbox 多选框 * tel 电话号码输入框 * range 滑块取值框 ... ... 更多 指定input标签展示的样式,忽略type属性将默认使用 text
name(必须) 字符串 form提交时,该字段的key,忽略value属性的元素将不会被提交
checked(状态) 任意值 或 忽略该属性 有此属性的radio和checkbox元素将被选中,同一name多个元素具有此属性的,提交时取最后一个值
selected(状态) 任意值 或 忽略该属性 有此属性的option元素将被选中,同一name多个元素具有此属性的,提交时取最后一
readonly(状态) 任意值 或 忽略该属性 具有该属性的表单元素将不可输入或改变状态,除非用JavaScript操作
disabled(状态) 任意值 或 忽略该属性 除拥有readonly的特征外,表单提交时,将忽略此字段
form(限制) 表单id 该元素将作为指定id表单字段被提交。用于 button 或 input type='submit' 元素时,将提交指定id的表单
accept(限制) * image/* 只能上传图片 * video/* 只能上传视频 input type='file' 使用的属性,是一个MIME类型的值,或文件后缀名
multiple(限制) 任意值 或 忽略该属性 input type='file' 或 select 或 应用了 datalist 的表单元素才能应用该属性
maxlength(限制) 正整数或0 文本域可输入字符的长度,浮点数将会向下取整,负数将被忽略,JavaScript可以绕过这一限制
required(限制) 任意值 或 忽略该属性 该表单字段是否需要被验证
pattern 一个正则表达式 \d{4,6} 形式的正则表达式,作为required校验规则
autocomplete(限制) on , off 同form的autocomplete属性,在表单元素上应用,优先级将高于form上指定的
autofocus(限制) 任意值 或 忽略该属性 页面加载时,该元素自动聚焦,应用于多个表单元素时,聚焦到第一个
placeholder(展示) 字符串 在元素没有value时,用于占位显示
value(展示) 字符串 或 数值 input 或 progress 展示的值,其中: * checkbox和radio的默认值是 'on' * range和progress的默认值是 0 * progress的是0的时候会播放循环动画

3.表单元素用法

  • form示例
    点击预览按钮,将会把 username1 的值提交到 /preview,
    点击发布按钮,将会把 username 的值提交给 /publish
<form action="/preview" name='preview' id='preview'></form>

<form action="/publish" name='publish' id='publish'>
  <input type="text" name='username' value='1'>
  <input type="text" form='preview' name='username1' value='2'>
  <button form='preview'>预览</button>
  <button>发布</button>
</form>
  • accept示例
<input type="file" accept=".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document">
  • multiple示例

datalist 需要键入 ',' 方可多选(需浏览器支持)

<label>Cc: <input type=email multiple name=cc list=contacts></label>
<datalist id="contacts">
 <option value="hedral@damowmow.com">
 <option value="pillar@example.com">
 <option value="astrophy@cute.example">
 <option value="astronomy@science.example.org">
</datalist>

select 需要一直按下ctrl键才可多选

<select name='number' multiple>
  <option value="CN">中国</option>
  <option value="US">美国</option>
  <option value="UK">英国</option>
</select>

input 直接框选多文件即可

<input type="file" multiple>
  • value示例
<progress value='70' max='100'></progress>
<input type="range" value='40' max='100'>
<input type="text" value='hello world'>
  • type示例
    文本框
<input type = “text” name=“名称”/>//单行文本
<textarea cols="30" rows="10"></textarea>//多行文本

密码框

<input type=“password” name=“名称”/>

单选框

<input type=“radio” name=“gender” value=“male”/> 
<input type=“radio”  name=“gender” value=“female”/>

复选框

<input type =“checkbox” name=“language” value=“Java”/> 
<input type =“checkbox”  name=“language” value=“C”/>
<input type =“checkbox” name=“language” value=“C#”/>

隐藏域
隐藏域通常用于向服务器提交不需要显示给用户的信息

<input type=“hidden” name=“隐藏域”/>

文件上传

使用file,则form的enctype必须设置为multipart/form-data,method属性为POST。

<input name="uploadedFile" id="uploadedFile" type="file" size="60" accept="text/*"/>

下拉列表

selected默认为选择项

<select name="country" size="10">
    <option value="gam">Gambia</option>
    <option value="mad" selected>Madagascar</option>
    <option value="nam">Namibia</option>
</select>

<label></label>标签

在<input type=“text”>前可以写普通的文本来修饰,但是单击修饰文本的时候input并不会得到焦点,而用label则可以,for属性指定要修饰的控件的id,<label for=“txt1” >内容</label>;
提交按钮

<input type="submit" value="提交"/>

重置按钮

<input type=“reset” value=“重置按钮"/>

普通按钮

<input type="button" value="普通按钮"/>

图像按钮

图像按钮的src属性指定图像源文件,它没有value属性。图像按钮可代替<input type="submit"/>,而现在也可以通过css直接将<input type="submit"/>按钮的外观设置为一幅图片。

<input type="image" src="bg.jpg" />

  • 常识

没有 name 和有 disable 的字段不会被提交
同一个表单中,相同name的字段值会发生覆盖,radio 和 checkbox 除外
在低版本浏览器中,name可以作为id使用
忽略或使用浏览器不支持的 type 会转为 type=text
低版本浏览器不支持动态改变 type
点击 button 会默认提交表单
低版本浏览器需要指定 button 的 type=submit 才会提交表单
文本域的光标颜色由字体颜色决定
form表单不能互相嵌套
表单元素可以不在表单的html结构内

参考:https://segmentfault.com/a/1190000005803696

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容