HTML(5)表单元素以及对各个表单元素的name、value属性的理解

html-css020

HTML(5)表单元素以及对各个表单元素的name、value属性的理解,第1张

我在学习表单元素的时候感觉很混乱,特别是 name value 这两个属性,没有真正理解它们是干什么的,所以需要梳理一下。

HTML表单元素主要有 <form><input><select><textarea><button><fieldset><legend>

HTML5新增的表单元素有三个 <datalist><keygen><output>

<form>元素定义HTML表单,收集用户输入。

属性主要有 action 和 method ;

action 定义在提交表单时执行的动作,向服务器提交表单的通常做法是使用提交按钮(type为 submit 的 <input>元素); 如果省略该属性,则action会被设置为当前页面

method 属性规定在提交表单时所用的HTTP方法(HTTP方法有GET和POST两种,这里只说一下两者的主要区别:GET方法会使表单数据在页面地址栏是可见的,而POST方法不可见,所以POST方法安全性更佳)。

<input>元素很常用(为行内元素,在“去哪儿”找实习面试的时候被问到过,当时都答错......),根据不同的 type 属性,可以变化为多种形态。

type 的取值有 text radio checkbox password submit button HTML5又新增了 type 类型 email url search number range color date pickers(date month week...) ,这些新类型提供了更好的输入控制和验证。

对于 <input>元素,除了 type 属性,常用的就是 name 和 value 属性:

name 属性----想要被正确地提交,每个输入字段必须设置一个 name 属性。

value 属性----为 <input>元素设定值,对于不同的 type , value 属性的含义也不同。

效果图如下

当选择“许嵩”,点击“提交”按钮后,看到页面地址栏里表单数据的内容如下图所示。

注意:单选钮的各个 name 属性值要完全一致,否则会不只选中一个选项

效果图如下

定义下拉列表,需要配合 <option>使用, <option>定义待选择的选项;通常会把首个选项显示为被选选项;可通过selected属性来定义预定义选项。

效果图如下:

当 value 的属性值是空的时候,会取 <option>的内容值作为表单数据提交。

定义多行输入字段(文本域)

效果如下图

地址栏数据如下图所示。当文本域为空时,提交的表单数据也为空;改变文本域的值,再次提交,则表单数据也会相应的改变。

<button>元素的 type 属性有三个可能的值 button submit 和 reset ;这里只介绍属性值 button

type 为 button 时,定义可点击的按钮

效果如下图

点击后出现

规定输入域的选项列表;需要配合 <option>元素一起使用,该元素定义列表项;如需把datalist绑定到输入域,需要把输入域的 list 属性值设置为datalist的 id 值; <option>元素必须要设置 value 属性。

效果图如下

当选择第三项,并点击"提交"按钮后,地址栏数据如下

提供一种验证用户的可靠方法。

<keygen>元素是密钥对生成器(key-pair generator)。当提交表单时会生成两个键,一个是公钥,一个是私钥。私钥存储于客户端,公钥则被发送到服务器。公钥可用于之后验证用户的客户端证书。

目前浏览器对该元素糟糕的支持程度 不足 以使其成为有用的安全标准。

效果图如下

点击第一项并提交后,地址栏的数据为

用于不同类型的输出,如计算或脚本输出。

效果如下图

通过总结对这些元素的认识更加深刻了,所以要经常整理!

首先先说一个html5中表单新增的一个功能,在我们之前的html中,表单元素必须放在form元素所包含的里面,在html5中,可以把他们写在页面上的任何一个地方,然后给该元素增加一个form属性,form属性的值为form表单的id,如下:

[html] view plain copy

<form method="get" id="test">

<input type="text" name="name"/> 

<input type="password" name="password"/>

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

</form>

<input type="text" name="confirm" form="test">

在form元素里面的表单元素可以不用添加form属性,如果你想利用form获取所有表单元素的值,那么在form元素外面的表单元素就必须添加form属性,input、select、textarea等元素都满足该功能。

接下来开始介绍html5新增的表单元素,所有例子均用谷歌浏览器展示。

新增表单元素

email:提交表单的时候验证输入值是否满足email的格式

<input type="email" name="email"/>

url:提交表单的时候验证输入值是否满足url的格式

<input type="url" name="url"/>

number:根据你的设置提供选择数字的功能,其中min为最小值,max为最大值,value为默认值,step为点击箭头时数字的变化量,max、min、step、value均可不写,目前某些浏览器还不支持。

<input type="number" name="number" min=2 max=100 step=5 value="15"/>

range:会以一个滑块的形式表现包含一定范围内数字值的输入域,max为最大值,min为最小值,value为默认值,如果没有设置max和min,默认值是1-100

<input type="range" name="range" min=20 max=200 value="60"/>

日期和时间类型:

date:选取日、月、年

<input type="date" name="date"/>

month:选取月、年

<input type="month" name="month"/>

week:选取周、年

<input type="week" name="week"/>

time:选取小时、分钟

<input type="time" name="time"/>

datetime:选取时间、日、月、年(UTC时间)(我这里浏览器显示不出效果)

<input type="datetime" name="datetime"/>

datetime-local:选取时间、日、月、年(本地时间)

<input type="datetime-local" name="datetime-local"/>

search:用于搜索域,若加上result="s"属性,则会在搜索框前面加一个搜索图标(我这里浏览器显示不出效果)

<input type="search" name="search" result="s"/>

tel:验证输入的是否是电话号码的格式(我这里浏览器显示不出效果)

<input type="tel" name="tel" />

color:color类型会提供颜色拾取器,供用户选择颜色,并将用户选择的颜色填充到此元素中

<input type="color" name="color"/>

新增input属性(部分容易理解的就不进行代码演示了),后面为支持该属性的元素

autofocus:在打开页面时使元素自动获取焦点                                             //input,button,select,textarea

placeholder: 在用户输入时进行提示                                                                // input,textarea

form:这篇文章的开头就有这个属性,它用于表明元素属于哪个表单,无论元素的位置在哪里,所属表单都能获取该元素的值                              //input,output,button,select,textarea,fieldset

required:表明该元素是必填项,当提交表单的时候会自动验证该元素的内容是否不为空          //input,textarea

max/min/step:限制值的输入范围,以及值的变化程度。上面的新增number元素有介绍。        //input

autocomplete:使form元素或者input元素拥有自动完成功能,既记录用户之前输入的值,关闭为off,默认为on。                            //form,input

表单重写属性:                      //input

formaction:重写表单的action属性  

formenctype:重写表单的enctype属性。

enctype属性管理的是表单的MIME编码,MIME就是一种电子邮件传输的互联网标准,表明传递的信息类型和编码,共有三个值可选:

1,application/x-www-form-urlencoded(默认),设置表单传输的编码。

2,multipart/form-data,指定传输数据的特殊类型,主要就是上传的非文本内容,比如文件、图片。

3,text/plain,纯文本传输。

formmethod: 重写表单的method属性

formnovalidate:重写表单的novalidate属性

formtarget:重写表单的target属性。

比如:

[html] view plain copy

<form action="test.html" method="get" autocomplete="on">

姓名: <input type="text" name="name" /><br />

密码: <input type="password" name="pwd" /><br />

<input type="submit" formnovalidate="true" value="提交未经验证"/>

</form>

multiple:规定输入字段可选择多个值                    //input,select

list:list属性的值为datalist元素的id,datalist元素类似于选择框,在文本框获得焦点的时候以提示输入的方式显示。如下:

[html] view plain copy

姓名:<input type="text" name="name" list="name"/>

<datalist id="name" >

<option value="zhangsan">张三</option>

<option value="lisi">李四</option>

<option value-"wanger">王二</option>

</datalist>

pattern:验证input输入域的格式,即正则表达式。

<input type="text" name="name" pattern="[A-z0-9]{8}"/>

1、<input>元素定义输入框,根据不同的 type 属性,可以变化为多种形态。例如:

<input type=text>表示文本输入框,<input type=password>表示密码输入框,<input type=radio>表示单选输入框,<input type=checkbox>表示复选输入框。

2、<select> 元素定义下拉列表;

3、<option> 元素定义待选择的选项;列表通常会把首个选项显示为被选选项。能够通过添加 selected 属性来定义预定义选项;

4、<textarea> 元素定义多行输入字段(文本域);

5、<button> 元素定义可点击的按钮;

6、<datalist> 元素为 <input>元素规定预定义选项列表;用户会在他们输入数据时看到预定义选项的下拉列表。