|
新增屬性 |
個人理解 |
|
form |
html5之前,表單內(nèi)的從屬元素需要放入標(biāo)簽中,現(xiàn)在可以為標(biāo)簽指定form標(biāo)簽即可 點評:該功能解決了我們實際中遇到的一些問題,比如iframe模擬異步圖片上傳時,就必須將圖片寫到form外。 |
|
formaction formmethod |
該屬性用于按鈕(submit)讓表單提交頁面可又按鈕控制 formmethod指定各按鈕提交方式 |
|
placehoder |
該屬性非常有用,用于文本框中顯示提示信息,非常有用的一屬性 |
|
list |
list屬性需要與datalist一同使用,相當(dāng)于文本框,模擬select,非常適用的一個屬性 |
|
autofocus |
用于文本框主動獲取焦點,有用的東東 |
|
新增input屬性,解放驗證,各瀏覽器支持不好 |
|
|
tel |
用于電話 |
|
url |
驗證url |
|
|
驗證郵箱 |
|
date/time |
日期類驗證,會出現(xiàn)日期選擇插件哦。。。 |
|
number |
只能是數(shù)字 |
|
range |
控制數(shù)字范圍 |
|
color |
顏色選擇器,好東西啊。。。 |
HTML5中增加了很多與form有關(guān)的屬性,說實在的,這些東西真心貼心啊!!!很大程度上講:
完全解放表單驗證
若不是考慮兼容性問題,老夫恨不得立即投入其中,但一旦想起兼容性問題的話,你就會非常頭疼!!!
因為原本很好的東西,卻是因為歷史的原因,反而會增加我們的工作量!!!
在錯的時間,做對的事情,他看起來是對的,實際上也是對的。。。但你會發(fā)現(xiàn),他錯了。。。。
|
項目 |
個人理解 |
|
figure/figcaption |
據(jù)說表示頁面獨立內(nèi)容,移除后無影響,暫無發(fā)現(xiàn)用處.. |
|
details |
該標(biāo)簽有點意思,用于替代js中,元素收起展開功能。 最新ff都不支持……個人覺得,既然提供了該標(biāo)簽應(yīng)該提供屬性表示上下展開或者左右展開; |
|
mark |
高亮顯示,當(dāng)真語義化 |
|
progress |
屌絲們,可以告別gif圖片了,也不用div模擬百分比了,與windows區(qū)域一致的進度條出現(xiàn)啦,異步文件上傳更加完善! |
|
改良o(jì)l |
老夫就沒有用過這個主。。。 |
|
…… |
|
以上元素屬于可有可無的元素,不必贅述,接下來,本文明星對象登場:
FileList與file對象:
在html4中,file標(biāo)簽只允許選擇一個文件,但html5中,對file標(biāo)簽設(shè)置multiple屬性后,變可以選擇多文件了!!!
而,選擇后便會形成這里的filelist對象,即一個個file組成的對象列表,簡單來說就是file數(shù)組。
file對象具有2屬性,name代表文件名(不包括路徑),lastModifiedDate表示最后修改時間
其實我們在html4中操作file時,可以獲取本地很多屬性,比如文件大小,但是萬惡的ie不支持,到ie9后才有所好轉(zhuǎn)。
所以想客戶端提示文件上傳過大的同學(xué)放棄吧。。。
Blob對象
表示二進制原始數(shù)據(jù),提供一slice方法訪問字節(jié)內(nèi)部原始數(shù)據(jù);size表示blob對象字節(jié)長度、type表示其mime類型,類型未知則返回空字符串。
來來,簡單做一實驗:
我們在ff中選擇圖片后,提交,設(shè)個斷點看看:

file主角登場,就是他了,我們將之屬性輸出來看看:

真的是應(yīng)有盡有啊!有了該屬性就可以做很多事情了,但是。。。我們來看看ie7、8:

各位觀眾,人家壓根沒這個屬性,所以一切百搭。。。
話說,我覺得ie瀏覽器調(diào)試起來很痛苦,請問各位大神有沒有什么好的ie開發(fā)插件,就像ff的firebug,google自帶的插件??
FIleReader接口
filereader接口,可將文件讀入內(nèi)存,有了這個東東我們就可以很舒服的做圖片預(yù)覽了,但他的公用不止如此。
filereader的四個方法:
readAsBinaryString 將文件讀取為二進制碼——通常我們將數(shù)據(jù)傳給后端;
readAsText 將文件讀取為文本——讀取文本內(nèi)容;
readAsURL 將文件讀取為DataURL——一般是小文件,圖片或者h(yuǎn)tml;
abort 中斷讀取,因為文件過大等待時間就很長了
filereader接口事件:
onabort 讀取中斷觸發(fā);
onerror 讀取失敗觸發(fā);
onloadstart 開始讀取時觸發(fā);
onprogress 讀取中
onload 讀取成功時觸發(fā);
onloadend 讀取完成后觸發(fā),無論成功失敗;
光說不練不行,我們這里做個小實驗:
用最新瀏覽器運行試試呢!
我們再做一個判斷,看看其事件執(zhí)行順序:
reader.onload = function (e) {
alert('onload');
}
reader.onprogress = function (e) {
alert('onprogress');
}
reader.onerror = function (e) {
alert('onerror');
}
reader.onloadstart = function (e) {
alert('onloadstart');
}
reader.onloaded = function (e) {
alert('onloaded');
}
此處具體應(yīng)用:
工作中碰到的一些東西【彈出窗口】【拖放】【異步文件上傳】
但是集成在HTML5中當(dāng)然更好!!!我們現(xiàn)在來看看這個東東。。。并且它的強大之處,就是不止在瀏覽器中拖動,這就不得了了哦(拖動圖片上傳)
html5中默認(rèn)對圖片、鏈接可以拖放,其它元素需要設(shè)置draggable="true"才能拖放,事不宜遲,老夫馬上去試試。

拖放時候一定要記住,阻止頁面默認(rèn)行為,否則會打開新窗口的,其中以下亦是重點:
1 拖放可使用DataTransfer傳遞數(shù)據(jù),該對象是非常有用的,因為在拖動目標(biāo)元素時,可能會經(jīng)過其它元素,我們可以用此傳遞信息;
API:
dragstart 被拖放元素 開始拖放時
drag 被拖放元素 拖放過程中
dragenter 拖放過程中鼠標(biāo)經(jīng)過的元素 被拖放元素開始進入本元素時
dragover 拖放過程中鼠標(biāo)經(jīng)過的元素 本元素內(nèi)移動
drageleave 拖放過程中鼠標(biāo)經(jīng)過的元素 離開本元素
drop 拖放的目標(biāo)元素 拖動的元素放到了本元素中
dragend 拖放的對象 拖放結(jié)束
其實這里是有問題的,我并未去深入研究從開始拖動到經(jīng)過各種元素會產(chǎn)生神馬情況,這個可以作為二次學(xué)習(xí)時的重點研究對象。
結(jié)語
html5的文件和表單做的比較精致,個人感覺比布局新增的幾個標(biāo)簽有用多了,明天開始學(xué)習(xí)canvas,雖然不懂,雖然見過,但是還是感覺很厲害的樣子!
標(biāo)簽:山南 平頂山 陜西 公主嶺 南平 黃石 黃石
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5 form標(biāo)簽之解放表單驗證、增加文件上傳、集成拖放的使用方法》,本文關(guān)鍵詞 HTML5,form,標(biāo)簽,之,解放,表單,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。