自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用HTML5構(gòu)建下一代的Web Form

移動(dòng)開發(fā) Android
HTML語言作為如今編程最為廣泛的語言,具有易用、快捷、多瀏覽平臺(tái)兼容等特點(diǎn),但是隨著時(shí)代的進(jìn)步,HTML的標(biāo)準(zhǔn)卻停滯不前,這一次還在不斷開發(fā)中的HTML5標(biāo)準(zhǔn)的更新可以說給這門標(biāo)記語言帶來了新的生命力。本文將著重討論HTML5中的Web Forms 2.0, 即表單的部分。

HTML語言作為如今編程最為廣泛的語言,具有易用、快捷、多瀏覽平臺(tái)兼容等特點(diǎn),但是隨著時(shí)代的進(jìn)步,HTML的標(biāo)準(zhǔn)卻停滯不前,這一次還在不斷開發(fā)中的HTML5標(biāo)準(zhǔn)的更新可以說給這門標(biāo)記語言帶來了新的生命力。本文將著重討論HTML5中的Web Forms 2.0, 即表單的部分。

表單是網(wǎng)頁中常見的控件(集)。小到網(wǎng)站注冊(cè)登錄,大到一個(gè)企業(yè)的數(shù)據(jù)管理系統(tǒng),都基本上有表單的身影。表單之所以如此重 要,主要是因?yàn)樗鼡?dān)負(fù)大量的用戶和網(wǎng)頁后臺(tái)數(shù)據(jù)更新交互的任務(wù)。Web開發(fā)人員,對(duì)于網(wǎng)頁表單可以說又愛又恨,愛的是它方便的收集、組織數(shù)據(jù)的功能,恨的 是它的功能很大程度上也就僅此而已。一些在最終網(wǎng)站用戶看起來稀松平常的功能,比如說輸入類型檢查、表單校驗(yàn)、錯(cuò)誤提示等等,開發(fā)人員無不需要花費(fèi)大量精 力利用 JavaScript和DOM編程來滿足這些天然所需的功能點(diǎn),而隨著Ajax的流行,出現(xiàn)的一些JavaScript的工具庫(kù),比如Dojo, YUI等都提供了方便的JavaScript Widget或者API來減輕開發(fā)人員的負(fù)擔(dān)。

HTML5的表單新特性

HTML5 Web Forms 2.0是對(duì)目前Web表單的全面提升,它在保持了簡(jiǎn)便易用的特性的同時(shí),增加了許多內(nèi)置的控件或者控件屬性來滿足用戶的需求,并且同時(shí)減少了開發(fā)人員的編程。在我看來,HTML5 主要在以下幾個(gè)方面對(duì)目前的Web表單做了改進(jìn):

1.新的控件類型 ◆還在為類型檢查犯愁嗎,還在為那一長(zhǎng)串看不太明白的檢驗(yàn)輸入的正則表達(dá)式而苦惱嗎,HTML5提供的一系列新的控件將天然的具備類型檢查的功能。比如說URL輸入框,Email輸入框等。

<LI clss=alt><input type="url"></< SPAN>input> 

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

當(dāng)然還有非常重要的日期輸入框,要知道使用JavaScript和CSS來“手工”制作一個(gè)日期輸入框還是非常花功夫的,類似Dojo,YUI這樣的類庫(kù)也無不在這個(gè)widget上面大做文章。

作為我痛苦記憶的一部分,我經(jīng)常記得我們開發(fā)人員要為一個(gè)select下拉別表動(dòng)態(tài)的添加非常多的選項(xiàng),這些選項(xiàng)大多數(shù)都是來自數(shù)據(jù)庫(kù),比如說國(guó)家、省市列表等等。這個(gè)事情非常繁瑣。HTML5將支持data屬性,為select控件外聯(lián)數(shù)據(jù)源!

  1.  

<select data="http://domain/getmyoptions"></< SPAN>select> 

2.改進(jìn)的文件上傳控件,你可以使用一個(gè)控件上傳多個(gè)文件,自行規(guī)定上傳文件的類型(accept),你甚至可以設(shè)定每個(gè) 文件***的大?。╩axlength)。你看出它和一般操作系統(tǒng)提供的文件上傳控件的區(qū)別了嗎,反正我覺得基本一致了。在HTML5應(yīng)用中,文件上傳控件 將變得非常強(qiáng)大和易用。

3.重復(fù)(repeat)的模型,HTML5提供一套重復(fù)機(jī)制來幫助我們構(gòu)建一些重復(fù)輸入列表,其中包括一 些諸如 add、remove、move-up,move-down的按鈕類型,通過這一套重復(fù)的機(jī)制,開發(fā)人員可以非常方便的實(shí)現(xiàn)我們經(jīng)??吹降木庉嬃斜?,這是 一個(gè)很常見的模式,我們可以增加一個(gè)條目、刪除某個(gè)條目、或者移動(dòng)某個(gè)條目等等。

4.內(nèi)建的表單校驗(yàn)系統(tǒng),HTML5為不同類型的輸入控件各自提供了新的屬性,來控制這些控件的輸入行為, 比如我們常見的必填項(xiàng)required屬性,以及為數(shù)字類型控件提供的max、min等。而在你提交表單的時(shí)候,一旦校驗(yàn)錯(cuò)誤,瀏覽器將不執(zhí)行提交操作, 而會(huì)顯示相應(yīng)的檢驗(yàn)錯(cuò)誤信息。

  1. <LI class=alt><input type="text" required></< SPAN>input> 
  2.  

<input type="number" min=10  max=100></< SPAN>input> 

5.XML Submission,我們一般常見的是Web Form的編碼格式是application/x-www-form-urlencoded。開發(fā)人員都很清楚這種格式,數(shù)據(jù)送到服務(wù)器端,可以方便的存 取。HTML5提供一種新的數(shù)據(jù)格式:XML Submission,即application/x-www-form+xml。簡(jiǎn)單的舉例說,服務(wù)器端將直接接收到XML形式的表單數(shù)據(jù)。 

  1. <LI class=alt><submission> 
  2.     <field name="name" index="0">Peter</< SPAN>field> <LI class=alt>    <fieldname="password" index="0">password</< SPAN>field> 
  3. </< SPAN>submission> 

我將利用HTML5新的表單系統(tǒng), 做一個(gè)簡(jiǎn)單的用戶注冊(cè)的界面,包括用戶名,密碼,出生日期,保密問題等內(nèi)容,代碼如下:

  1. <LI class=alt><! doctype html> 
  2. <html> <LI class=alt>    <head> 
  3.         <style> <LI class=alt>            p label {   
  4.                 width: 180px;  <LI class=alt>                float: left;   
  5.                 text-align: right;  <LI class=alt>                padding-right: 10px   
  6.             }  <LI class=alt>            table {   
  7.                 margin-left: 80px  <LI class=alt>            }   
  8.             table td {  <LI class=alt>                border-bottom: 1px solid #CCCCCC   
  9.             }  <LI class=alt>            input.submit {   
  10.                 margin-left: 80px  <LI class=alt>            }   
  11.         </< SPAN>style> <LI class=alt>    </< SPAN>head> 
  12.     <body> <LI class=alt>        <form action='/register' enctype="application/x-www-form+xml" method="post"
  13.             <p> <LI class=alt>                <label for='name'>ID(請(qǐng)使用Email注冊(cè))</< SPAN>label> 
  14.                 <input name='name' required type='email'></< SPAN>input> <LI class=alt>            </< SPAN>p> 
  15.             <p> <LI class=alt>                <label for='password'>密碼</< SPAN>label> 
  16.                 <input name='password' required type='password'></< SPAN>input><LI class=alt>            </< SPAN>p> 
  17.             <p> <LI class=alt>                <label for='birthday'>出生日期</< SPAN>label> 
  18.                 <input type='date' name='birthday' /> <LI class=alt>            </< SPAN>p> 
  19.             <p> <LI class=alt>                <label for='gender'>國(guó)籍</< SPAN>label> 
  20.                 <select name='country' data='countries.xml'></< SPAN>select> <LI class=alt>            </< SPAN>p> 
  21.             <p> <LI class=alt>                <label for='photo'>個(gè)性頭像</< SPAN>label> 
  22.                 <input type='file' name='photo' accept='image/*' /> <LI class=alt>            </< SPAN>p> 
  23.             <table> <LI class=alt>                <thead> 
  24.                     <td><button type="add" template="questionId">+</< SPAN>button> 保密問題</< SPAN>td> <LI class=alt>                    <td>答案</< SPAN>td> 
  25.                     <td></< SPAN>td> <LI class=alt>                </< SPAN>thead> 
  26.                 <tr id="questionId" repeat="template" repeat-start="1" repeat-min="1"repeat-max="3"> <LI class=alt>                    <td><input type="text"name="questions[questionId].q"></< SPAN>td> 
  27. <td><input type="text" name="questions[questionId].a"></< SPAN>td> <LI class=alt><td><button type="remove">刪除</< SPAN>button></< SPAN>td> 
  28.                 </< SPAN>tr> <LI class=alt>            </< SPAN>table> 
  29.             <p> <LI class=alt>                <input type='submit' value='send'class='submit' /> 
  30.             </< SPAN>p> <LI class=alt>        </< SPAN>form> 
  31.     </< SPAN>body> 
  32. </< SPAN>html> 

由于目前HTML5標(biāo)準(zhǔn)仍然在開發(fā)中,不同的瀏覽器對(duì)HTML5特性的支持都相當(dāng)有限。其中Opera在表單方面支持得比較好,本實(shí)例在Opera9上運(yùn)行一切正常,效果圖如下:

 

這個(gè)實(shí)例運(yùn)用了一些HTML5的新的表單元素,比如email類型的輸入框(ID),日期類型的輸入框(出 生日期)。并且使用了重復(fù)模型來引導(dǎo)用戶填寫保密問題,而在個(gè)性頭像的上傳中,通過限制文件類型,方便用戶選擇圖片進(jìn)行合乎規(guī)范的內(nèi)容上傳。而用戶選擇國(guó) 籍的下拉選擇輸入框中,采用的是外聯(lián)數(shù)據(jù)源的形式,外聯(lián)數(shù)據(jù)源使用coutries.xml,內(nèi)容如下:  

  1. <LI class=alt><select xmlns="http://www.w3.org/1999/xhtml"
  2.     <option>China</< SPAN>option> <LI class=alt>    <option>Japan</< SPAN>option> 
  3.     <option>Korea</< SPAN>option> 
  4. </< SPAN>select> 

并且form的enctype是application/x-www-form+xml,也就是HTML5的XML提交。 所以一旦form校驗(yàn)通過,form的內(nèi)容將會(huì)以XML的形式提交。你還會(huì)發(fā)現(xiàn),在ID輸入框如果沒有值,或者輸入了非email類型的字符串時(shí),一旦試 圖提交表單,就會(huì)有提示錯(cuò)誤的信息出現(xiàn),而這都是瀏覽器內(nèi)置的。

結(jié)語

HTML5對(duì)表單控件的更新,無疑是很振奮人心的。本文描述了一部分表單的新特性,還有一部分新特性同樣很令人期待。相信隨著標(biāo)準(zhǔn)的深入開發(fā)以及瀏覽器對(duì)HTML5支持程度的進(jìn)一步提升,設(shè)計(jì)一個(gè)簡(jiǎn)單易用的表單的工作,將變得非常輕松。

本文鏈接:http://html5.662p.com/thread-43-1-1.html

 

責(zé)任編輯:chenqingxiang 來源: html5.662p
相關(guān)推薦

2009-06-26 09:06:01

2011-01-19 08:25:57

HTML5Web

2009-03-16 09:27:45

HTML 5IBM套接字

2013-07-27 21:28:44

2013-06-27 11:21:17

2021-04-01 09:01:57

lit-htmlJavaScript DOM API

2012-11-16 11:31:39

大數(shù)據(jù)CRM

2015-08-26 17:22:45

bootstrap下一代特點(diǎn)

2015-08-27 09:37:22

Bootstrap特點(diǎn)

2011-04-19 16:57:07

HTML5

2011-05-11 12:59:18

HTML5

2011-05-11 13:39:13

2011-05-11 18:00:10

HTML5兼容性

2011-01-11 10:13:06

2011-05-12 16:01:51

HTML5

2018-09-27 18:47:45

AIOpsDevOps

2020-09-27 17:27:58

邊緣計(jì)算云計(jì)算技術(shù)

2011-11-03 14:19:15

2018-09-11 08:00:00

DevOpsAIOps機(jī)器學(xué)習(xí)

2020-06-02 08:05:28

智能電表蜂窩物聯(lián)網(wǎng)NB-IoT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)