【澳门葡京】简简单单form标准化实例,表单成分

表单成分 开篇

2016/01/19 · HTML5 ·
表单

原文出处:
司徒正美(@司徒正美)   

后日初阶讲述表单那么些重大模块

【澳门葡京】简简单单form标准化实例,表单成分。可以说,JS 最早是为表单而发明的,
因而在并未JS在此之前,全体操作都亟需付出后端验证,发现有误再重定向回原页面,
累加此前1,2KB的网速,那用户体验真是奇差无比.因而JS最初发明出来,就是做表单验证的.

围绕表单,添加了各个语义化的因素,事件,属性.

比如说label,在有个别radio外围上它,既能表达它是怎么东西,也能扩展点击范围

比如说fieldset,它兼具默许的层面,方便圈定某些区域,注明那其中的事物是表单(form自己默许不可知,
而CSS要在稍晚的时候才表明出来)

例如, onchange, oninput, onsubmit等事件,提交与用户交互的友好度

诸如, readOnly, disabled, checked, 为表单成分增添各样状态.

大家得以给二个概念,何谓表单成分 ?就是能向后端提供数据的成分

而这么些因素通过都置身form成分中,但一旦将它们单个拎出来,那么些不好判断,大家还足以经过此外”外观”特征得到,就是它们的tagName都是input,
button, select,
textarea.其实option成分也好不容易表单成分,但它的多寡要求提交到select 成分举办过滤,才能交到

JavaScript

function isFormElement(el){ return
/input|button|select|textarea/i.test(el.tagName) }

1
2
3
function isFormElement(el){
   return /input|button|select|textarea/i.test(el.tagName)
}

在HTML5中,还添加类似datalist, output等因素,
但它们只是帮忙设备,没有一贯给form提交数据的力量,由此不到底表单成分.

form成分作为AJAX出现前唯一的交由通道,我们在此处首要说一下

它下边装有如下属性                          

属性 描述
accept MIME_type  规定通过文件上传来提交的文件的类型
accept-charset charset 服务器处理表单数据所接受的字符集
enctype MIME_type 规定表单数据在发送到服务器之前应该如何编码
method get/post 规定表单数据发送的方式,get方法和post方法
name name 规定表单的名称
target _blank/_parent/_self/_top 规定在何处打开action URL

里头八个首要性质说美赞臣(Meadjohnson)下:

壹 、action内定该表单发送时接受操作的地址

二 、method钦命表单数据发送的主意。可选值:get、post。get发送则表单内的多寡将附加到url后发送。post则是在HTTP请求中发送。

三 、enctype钦命表单数据在发送的服务器此前如何编码,越发注意的是,当含有上传域时要设置编码形式为enctype=”multipart/form-data”,否则后台不大概取得到浏览器发送的文本数量。是设置表单的MIME编码。暗中同意意况,那几个编码格式是application/x-www-form-urlencoded,不可以用于文书上传;唯有选择了multipart/form-data,form里面的input的值以2进制的不二法门传过去。才能全部的传递文件数量。FTP上传大文件的时候,也有个选项是以二进制形式上传。

澳门葡京 1

表单里面的成分布置有一定的渴求,如form里面肯定放着fieldset,
fielset里面包着legend, label包着表明文字与input, textearea….,
label里要内定tabindex,就是tab切换的各种。

XHTML

<form> <fieldset> <legend>health
information</legend> <label tabindex=”1″>height: <input
type=”text”></label> <label tabindex=”2″>weight:
<input type=”text”></label> </fieldset> </form>

1
2
3
4
5
6
7
<form>
  <fieldset>
    <legend>health information</legend>
    <label tabindex="1">height: <input type="text"></label>
    <label tabindex="2">weight: <input type="text"></label>
  </fieldset>
</form>

澳门葡京 ,不等的表单拥有不相同的外形,它们的用法也各有不一致,种类化数据也差距,因而大家将分别以下三种细细切磋.

输入系, 选择系, 下拉系, 搭车系, 图形系

1 赞 8 收藏
评论

澳门葡京 2

一、表单

1、使用fieldset和legend标签

1、使用fieldset和legend标签

1. 表单的机能

HTML
表单用于吸纳不同品类的用户输入,用户提交表单时向服务器传输数据,从而落成用户与Web服务器的互动。

在form中,大家平时会对form中的音讯进行分组,比如注册form,大家大概会将登记消息分结合宗旨音讯(一般为必填),详细消息(一般为可选),那我们什么样更好的来促成啊?我们可考虑在form中进入上边八个标签:

在form中,我们平常会对form中的音讯举办分组,比如注册form,大家只怕会将登记音信分结合宗旨消息(一般为必填),详细信息(一般为可选),那大家什么样更好的来兑现啊?大家可考虑在form中进入上面多少个标签:

2. 表单定义(<form></form>标签)

HTML表单是壹个饱含表单元素的区域, 表单使用<form>
标签创制。表单可以包蕴 <a target=”_blank” title=”HTML input
成分,比如文本字段、复选框、单选框、提交按钮等等。表单还是能包涵<a
target=”_blank” title=”HTML menus、<a target=”_blank” title=”HTML
textarea、<a target=”_blank” title=”HTML fieldset、<a
target=”_blank” title=”HTML legend 和 <a target=”_blank”
title=”HTML label 成分。注意,<form
>成分是块级成分,其左右会发生折行。

  1. <form action=”reg.ashx” method=”post”>
2. <!--表单元素在这里-->
3. </form>

复制代码 代码如下:

复制代码 代码如下:

3. 表单属性

action:规定当提交表单时,向何处发送表单数据。action取值为:第3,2个U哈弗L(相对U昂科雷L/相对U奥迪Q7L),一般针对服务器端一个主次,程序接收到表单提交过来的数目(即表单成分值)作相应处理。比如<form
action=”http://www.cnblogs.com/reg.ashx”>,当用户提交这几个表单时,服务器将推行网址”
  method:该属性定义浏览器将表单中的数据交到给服务器处理程序的法门。关于method的取值,最常用的是get和post。第叁,使用get格局交给表单数据,Web浏览器会将各表单字段成分及其数量依照U凯雷德L参数格式附在<form>标签的action属性所钦定的UEnclaveL地址后边发送给Web服务器;由于UENCOREL的长短限制,使用get形式传递的数据量一般限制在1KB以下。第三,使用post情势,浏览器会将表单数据作为HTTP请求体的一部分发送给服务器。一般的话,使用post方式传送的数据量要比get形式传递的数据量大;根据HTML标准,假使处理表单的服务器程序不会改变服务器上囤积的数量,则应使用get方式(比如查询),假若表单处理的结果会挑起服务器上囤积的数额的成形,则应该运用post形式(比如增删改操作)。第2,其余形式(Head、PUT、DELETE、TRACE

OPTIONS等)。其实,最初HTTP标准对种种操作都分明了相应的method,但新兴多如牛毛都尚未被遵循,大多数状态只是利用get或post就OK。关于更加多的种种method情势的差异,由于自家日前对HTTP协议了然的不多,不敢妄下定论。很多园友的研商也就如不是非常长远,大家争辩相比较多。
参见123

target:该属性规定在何地显示action属性中钦点的USportageL所重返的结果。取值有_blank(在新窗口中打开)、_self(在平等的框架中开拓,暗许值)、_parent(在父框架中开拓)、_top(在全体窗口中开拓)和framename(在内定的框架中打开)。
  title:设置网站访问者的鼠标放在表单上的任性地方停留时,浏览器用小浮标呈现的文本。
 
enctype:规定在发送到服务器此前应当怎么样对表单数据进行编码。取值:暗中同意值为
“application/x-www-form-urlencoded”,在发送到服务器从前,全数字符都会开展编码(空格转换为
“+” 加号,特殊符号转换为 ASCII HEX
值);“multipart/form-data”:不对字符编码。在运用含有文件上传控件的表单时,必须利用该值。
  name:表单的称号。注意和id属性的界别:name属性是和服务器通讯时采取的称呼;而id属性是浏览器端使用的称谓,该属性重假若为着便于客户端编程,而在css和JavaScript中采用的。

fieldset:对表单举办分组,3个表单能够有多个fieldset
legend:表明每组的始末叙述

fieldset:对表单进行分组,一个表单能够有多少个fieldset
legend:表达每组的情节叙述

贰 、 表单元素

  • 单行文本框<input type=”text”/>(input 的type
    属性的暗许值就是”text”)

<input type=”text” name=”名称”>

以下是单行文本框的紧要性品质:
 size:钦命文本框的升幅,以字符个数为单位;在多数浏览器中,文本框的缺省宽度是十八个字符。
 value:内定文本框的暗许值,是在浏览器首次展示表单或然用户单击<input
type=”reset”/>按钮之后在文本框中突显的值。
 maxlength:钦点用户输入的最大字符长度。
 readonly:只读属性,当设置readonly属性后,文本框可以取得核心,但用户无法更改文本框中的value。
 disabled:禁用,当文本框被剥夺时,不可以获取主旨,当然,用户也不只怕改变文本框的值。并且在付给表单时,浏览器不会将该文本框的值发送给服务器。

  • 密码框<input type=”password”/>

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

  • 单选按钮<input type=”radio”/>
      使用办法:使用name相同的一组单选按钮,不相同radio设定不一致的value值,那样经过取指定name的值就可以清楚何人被选中了,不用单独的判断。单选按钮的因素值由value属性显式设置,表单提交时,选中项的value和name被打包发送,不显式设置value。

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

  • 复选框<input type=”checkbox”/>

利用复选按钮组,即name相同的一组复选按钮,复选按钮表单成分的成分值由value属性显式设置,表明提交时,全体入选项的value和name被打包发送

不显式设置value。复选框的checked属性表示是还是不是被选中,<input
type=”checkbox” checked />可能<input type=”checkbox”
checked=”checked”
/>(推荐)checked、readonly等这种二个可选值的性质都得以省略属性值。

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

  • 隐藏域<input type=”hidden”/>

隐藏域寻常用于向服务器交由不须求出示给用户的消息。

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

  • 文本上传<input type=”file”/>

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

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

  • 下拉框<select>标签

<select>标记成立多个列表框,<option>标记创设3个列表项,<select>与嵌套的<option>一起使用,共同提供在一组选项中开展采纳的措施。
  将1个option设置为当选:<option
selected>新加坡</option>恐怕<option
selected=”selected”>Hong Kong</option>(推荐方法)就可以将那个项设定为接纳项。怎么样促成“不拔取”,添加二个<option
value=”-1″>–不接纳–<option>,然后编程判断select选中的值假使是-1就觉着是不选拔。
  select分组选项,可以拔取optgroup对数码举办分组,分组自身不会被挑选,无论对于下拉列表依旧列表框都适用。  
  <select>标记加上multiple属性,可以允许多选(按CT宝马X3L键采取)

澳门葡京 3

select.jpg

  • 多创作本<textarea></textarea>
    多创作本<textarea>创造1个可输入多行文本的文本框,<textarea>没有value属性,<textarea>文本</textarea>,cols=“50”、rows=“15”属性表示行数和列数,不点名则浏览器采纳暗许突显。
  1. <textarea name=“textareaContent” rows=“ 20“ cols=“50” >
  1. 多创作本框的伊始显示内容 3 </textarea>
  • <label></label>标签
    在<input
    type=“text”>前可以写普通的文书来修饰,然而单击修饰文本的时候input并不会博得难点,而用label则足以,for属性指定要修饰的控件的id,<label
    for=“txt1” >内容</label>;”,然后按下alt+u(了解)。accesskey=“u“,label的另壹性格质。注意:要为被修饰的控件设置3个唯一的id。作者觉得<label></label>标签对<input
    type=”radio”/>和<inputtype=”checkbox”/>那八个标签是可怜实惠的。
  1. <input type=”radio” name=”sex” id=”male” value=”0″
    checked=”checked” /><label for=”male”>男</lable>
  2. <input type=”radio” name=”sex” id=”fmale” value=”1″
    /><label for=”fmale”>女</label>
  3. <input type=”radio” name=”sex” id=”secret” value=”2″
    /><label for=”secret”>保密</label>
  • <fieldset></fieldset>标签
    fieldset标签将控件划分2个区域,看起来更规整。
    1<fieldset>
    2 <legend>爱好</legend>
    3 <input type=”checkbox” value=”篮球” />
    4 <input type=”checkbox” value=”爬山” />
    5 <input type=”checkbox” value=”阅读” />
    6 </fieldset>
  • 交给按钮<input type=”submit”/>
    当用户单击<inputt
    type=”submit”/>的交给按钮时,表单数据会提交给<form>标签的action属性所钦赐的服务器处理程序。粤语IE下默许按钮文本为“提交查询”,可以设置value属性修改按钮的来得文本。 
    <input type=”submit” value=”提交”/>
  • 重置按钮<input type=”reset”/>

当用户单击<input
type=”reset”/>按钮时,表单中的值被重置为早先值。在用户提交表单时,重置按钮的name和value不会提交给服务器。

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

  • 常见按钮<input type=”button”/>

一般而言按钮常常用于单击执行一段脚本代码。

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

  • 图像按钮<input type=”image”/>

图像按钮的src属性钦命图像源文件,它没有value属性。图像按钮可代表<input
type=”submit”/>,而近年来也可以透过css间接将<input
type=”submit”/>按钮的外观设置为一幅图片。

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

Basic Register

[Ctrl+A 全选 注:如需引入外部Js需刷新才能进行]

First name:

fieldset默许是带边框的,而legend暗中认可一般显示在左上角。但在一些场馆大概不情愿让fieldset和legend的暗中同意样式或默许布局影响设计方案中的好看。

解决措施:在CSS上校fieldset的border设置为0,legend的display设置为none即可。
2、使用label标签
我们对form中的文本标签给定多个label标签,并使用for属性使其与表单组件相关联,效果为单击文本标签,光标呈现在相呼应的表单组件内。

Detailed Register

复制代码 代码如下:

Interest:

<form id=”demoform” class=”democss” action=””>
<fieldset>
<legend>Basic Register</legend>
<p>
<label for=”fname”>First name:</label>
<input type=”text” id=”fname” name=”fname” value=”” />
</p>

</fieldset>
<fieldset>
<legend>Detailed Register</legend>
<p>
<label for=”interest”>Interest:</label> 
<input type=”text” id=”interest” name=”interest” value=”” />
</p>

</fieldset>

</form>

除开上述措施,大家还是可以用label套嵌整个表单组件和文书标签,如:
<label for=”fname”>First name:<input type=”text” id=”fname” name=”fname” value=”” /></label>
依据标准,文本会自动与毗邻的表单组件关乎,但遗憾的是——以后主流的浏览器IE6并不资助这么些本性。
3、使用accesskey和tabindex属性
网站要专职更加多情形下的运用,比如没有光标设备(如鼠标)的动静下,要让动用键盘操作也可以做到form的填写,那时候点击对于它们来说,已经远非任何意义。我们那么些时候采取label的accesskey(飞快键,IE下为alt+accesskey属性值,FF下为alt+shift+accesskey属性值)和tabindex属性(Tab键,tabindex属性值为顺序)添加到表单标签上,如label,input等。

复制代码 代码如下:

[Ctrl+A 全选
注:如需引入外部Js需刷新才能实施]

<label for=”fname” accesskey=”f” tabindex=”1″ >First name:</label> 
<input type=”text” id=”fname” name=”fname” value=”” />

fieldset专断认同是带边框的,而legend暗中同意一般突显在左上角。但在少数场面或然不愿意让fieldset和legend的默许样式或专擅认同布局影响设计方案中的美观。

4、使用optgroup标签
optgroup标签的功力是在甄选列表中定义了一组选项。大家得以采取optgroup标签给select成分的options分类,并利用label属性,属性值会在下拉列表(select)里显示为3个不足选的、缩进标题。注意:optgroup 不接济嵌套。

化解方法:在CSS上校fieldset的border设置为0,legend的display设置为none即可。
2、使用label标签
我们对form中的文本标签给定一个label标签,并动用for属性使其与表单组件相关联,效果为单击文本标签,光标突显在相呼应的表单组件内。

Nanjing Suzhou Hangzhou Wenzhou

复制代码 代码如下:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

<form id=”demoform” class=”democss” action=””>
<fieldset>
<legend>Basic Register</legend>
<p>
<label for=”fname”>First name:</label>
<input type=”text” id=”fname” name=”fname” value=”” />
</p>

</fieldset>
<fieldset>
<legend>Detailed Register</legend>
<p>
<label for=”interest”>Interest:</label> 
<input type=”text” id=”interest” name=”interest” value=”” />
</p>

</fieldset>

</form>

IE6.0 中存在二个小Bug(FireFox 中不设有):使用键盘方向键举行分选时,在 IE 中,当选中项由三个optgroup的选项换到另一optgroup 的选项时,不会触发onchange。化解办法是:增加 onkeydown 或 onkeyup 事件帮衬化解。

除了上述措施,大家还足以用label套嵌整个表单组件和文件标签,如:
<label for=”fname”>First name:<input type=”text” id=”fname” name=”fname” value=”” /></label>
据悉标准,文本会自动与毗邻的表单组件关乎,但遗憾的是——未来主流的浏览器IE6并不协助那一个天性。
3、使用accesskey和tabindex属性
网站要兼任越多情况下的应用,比如没有光标设备(如鼠标)的情形下,要让动用键盘操作也得以做到form的填写,那时候点击对于它们来说,已经远非其余意义。大家那几个时候选拔label的accesskey(快捷键,IE下为alt+accesskey属性值,FF下为alt+shift+accesskey属性值)和tabindex属性(Tab键,tabindex属性值为顺序)添加到表单标签上,如label,input等。

5、使用button标签

复制代码 代码如下:

复制代码 代码如下:

<label for=”fname” accesskey=”f” tabindex=”1″ >First name:</label> 
<input type=”text” id=”fname” name=”fname” value=”” />

Definition and Usage
Defines a push button. Inside a button element you can put content, like text or images. This is the difference between this element and buttons created with the input element.

4、使用optgroup标签
optgroup标签的效应是在增选列表中定义了一组选项。我们可以采用optgroup标签给select成分的options分类,并行使label属性,属性值会在下拉列表(select)里体现为壹个不足选的、缩进题目。注意:optgroup 不帮助嵌套。

概念与用法
概念为三个交给按钮。在button成分内你可以放置内容,像文本(text)或然图片(images)。那是其一成分和input成分按钮的分别。

Nanjing Suzhou Hangzhou Wenzhou

复制代码 代码如下:

[Ctrl+A 全选
注:如需引入外部Js需刷新才能实施]

<button><img src=”images/click.gif” alt=”Click Me!” />Click Me!</button> 

IE6.0 中留存3个小Bug(FireFox 中不设有):使用键盘方向键举办精选时,在 IE 中,当选中项由三个optgroup的选项换来另一optgroup 的选项时,不会触发onchange。解决办法是:增加 onkeydown 或 onkeyup 事件支持消除。

button相对于input提供了更加多的意义与更丰硕的内容。button将按钮文字单独出来,并且可以在button内添加图片,赋予文字和图表更加多拔取的体裁,使平板的按钮变得更活跃。

5、使用button标签

与此同时动用button标签将比input按钮来得更有语义化,简单的从字面意思也可以知晓。

复制代码 代码如下:

在form中,大家平常会对form中的音信举办分组,比如注册form,大家兴许会将登记信息分结合大旨消息(一般为必填…

Definition and Usage
Defines a push button. Inside a button element you can put content, like text or images. This is the difference between this element and buttons created with the input element.

概念与用法
概念为1个付给按钮。在button成分内你能够放置内容,像文本(text)恐怕图片(images)。那是以此成分和input成分按钮的区分。

复制代码 代码如下:

<button><img src=”images/click.gif” alt=”Click Me!” />Click Me!</button> 

button相对于input提供了越来越多的法力与更增进的情节。button将按钮文字单独出来,并且可以在button内添加图片,赋予文字和图片越来越多选拔的样式,使平板的按钮变得更活泼。

再者利用button标签将比input按钮来得更有语义化,简单的从字面意思也得以了解。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website