form表單的粗淺認(rèn)知

關(guān)于選題

其實在構(gòu)思這篇文章的時候,標(biāo)題一度想起名為:“如何正確的吃透Form表單”笤成。之所以不敢起上述的名字有一個非常重要的原因,就是表單所傳輸?shù)臄?shù)據(jù)一般都與后端數(shù)據(jù)庫息息相關(guān),而自己對這方面基本一無所知狭归,所以不敢說自己能完全吃透。

1. form表單有什么作用文判?有哪些常用的input標(biāo)簽屬性过椎,分別有什么作用?

form表單的作用主要是用于向服務(wù)器傳輸數(shù)據(jù)戏仓。

<form action="xxx.php" method="post/get">
  <input type="text" name="email" />    定義單行的輸入字段疚宇,用戶可在其中輸入文本,默認(rèn)寬度為 20 個字符。
  <input type="button" value="按鈕" />    定義可點擊按鈕赏殃。
  <input type="submit" value="提交" />    定義提交按鈕敷待。提交按鈕會把表單數(shù)據(jù)發(fā)送到服務(wù)器。
  <input type="reset" value="重置" />    定義重置按鈕仁热。重置按鈕會清除表單中的所有數(shù)據(jù)榜揖。
  <input type="radio" name="sex" value="male" /> 男   定義單選按鈕。單選按鈕允許用戶選取給定數(shù)目的選擇中的一個選項抗蠢。
  <input type="radio" name="sex" value="female" /> 女
  <input type="password" />    定義密碼字段举哟。密碼字段中的字符會被掩碼(顯示為星號或原點)。
  <input type="file" />    用于文件上傳迅矛。
  <input type="checkbox" name="sports" value="Running" /> 跑步    定義復(fù)選框妨猩。
  <input type="checkbox" name="sports" value="Swimming" /> 游泳
</form>

2. post 和 get 方式的區(qū)別?

  • 傳輸方式的不同
    GET請求的數(shù)據(jù)會附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中)秽褒,以?分割URL和傳輸數(shù)據(jù)壶硅,參數(shù)之間以&相連,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD
    POST把提交的數(shù)據(jù)則放置在是HTTP包的包體中震嫉。

  • 數(shù)據(jù)大小的限制不同
    GET是通過URL提交數(shù)據(jù)森瘪,HTTP協(xié)議規(guī)范沒有對URL長度進(jìn)行限制,但是特定的瀏覽器及服務(wù)器對它有所限制票堵,IE對URL長度的限制是2083字節(jié)(2K+35)扼睬。對于其他瀏覽器,如Netscape悴势、FireFox等窗宇,理論上沒有長度限制,其限制取決于操作系統(tǒng)的支持特纤。
    理論上講军俊,POST是沒有大小限制的,HTTP協(xié)議規(guī)范也沒有進(jìn)行大小限制捧存。

  • 安全性方面也有所差別
    POST的安全性要比GET的安全性高粪躬。比如:通過GET提交數(shù)據(jù)担败,用戶名和密碼將明文出現(xiàn)在URL上,因為登錄頁面有可能被瀏覽器緩存镰官,其他人查看瀏覽器的歷史紀(jì)錄提前,那么別人就可以拿到你的賬號和密碼了,除此之外泳唠,使用GET提交數(shù)據(jù)還可能會造成Cross-site request forgery攻擊狈网。

  • 簡單總結(jié)一下
    Get是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請求,而Post是向服務(wù)器提交數(shù)據(jù)的一種請求笨腥,在FORM(表單)中拓哺,Method默認(rèn)為"GET",實質(zhì)上脖母,GET和POST只是發(fā)送機(jī)制不同士鸥,并不是一個取一個發(fā)!

3. 在input里镶奉,name 有什么作用础淤?

在我們第一個舉例的常見標(biāo)簽中,我們可以看到在input的屬性中經(jīng)常會出現(xiàn)name和value這兩個屬性哨苛。這兩個屬性其實就是所謂的“鍵值對”鸽凶,name對應(yīng)鍵名,value對應(yīng)鍵值建峭。name 屬性用于對提交到服務(wù)器后的表單數(shù)據(jù)進(jìn)行標(biāo)識玻侥,或者在客戶端通過 JavaScript 引用表單數(shù)據(jù)。
直觀的感受看下面兩幅圖我想你就能明白了:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <form action="xxx.php" method="post">
    <label for="user_name">姓名:</label><input id="user_name" type="text" placeholder="用戶名"><br>
    <label for="user_password">密碼:</label><input id="user_password" type="password"><br>
    <label>性別:</label>
    <input type="radio" name="性別" value="男" checked="checked">男
    <input type="radio" name="性別" value="女">女<br>
    <label>取向:</label>
    <input type="radio" name="取向" value="男">男
    <input type="radio" name="取向" value="女" checked="checked">女<br>
    <label>愛好:</label>
    <input type="checkbox" name="hobby" value="dota">dota
    <input type="checkbox" name="hobby" value="旅游">旅游
    <input type="checkbox" name="hobby" value="寵物">寵物<br>
    <label for="comment">評論:</label><textarea name="評論" id="comment" cols="30" rows="10" placeholder="ddd"></textarea><br>
    <label>我的car:</label>
    <select name="我的車">
        <option value="寶馬320">寶馬320</option>
        <option value="奔馳A45">奔馳A45</option>
        <option value="奧迪RS6">奧迪RS6</option>
    </select>
    <input type="submit" value="提交" />
  </form>
</body>
name的作用

從上圖我們可以清晰的看到亿蒸,name的作用就是對提交到服務(wù)器后的表單數(shù)據(jù)進(jìn)行標(biāo)識凑兰。可以看到我在代碼中特地把愛好改成的英文hobby边锁,就是為了防止有些朋友被誤導(dǎo)姑食,認(rèn)為并不是name在起作用。

4. radio 如何分組?

還是沿用上面的例子茅坛,在性別的兩個單選框中音半,我都使用了input type="radio" name="性別"。
type="radio"是用來聲明這是個單選框贡蓖,而 name="性別" 則將選項男和女這兩個單選框進(jìn)行了關(guān)聯(lián)曹鸠,讓用戶只能在這兩個選項中進(jìn)行選擇。

5. placeholder 屬性有什么作用?

還拿上面的那個表單舉例斥铺,在姓名的那一欄后面的輸入框中彻桃,你可以看到一個默認(rèn)的“用戶名”這三個字,當(dāng)你在輸入框中輸入內(nèi)容的時候晾蜘,這幾個字就會消失邻眷,這就是用 placeholder 屬性來實現(xiàn)的眠屎。

6. type=hidden隱藏域有什么作用?

  • 隱藏域在頁面中對于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發(fā)送信息肆饶,以利于被處理表單的程序所使用组力。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時候,隱藏域的信息也被一起發(fā)送到服務(wù)器抖拴。

  • 有些時候我們要給用戶一信息,讓他在提交表單時提交上來以確定用戶身份腥椒,如sessionkey阿宅,等等.當(dāng)然這些東西也能用cookie實現(xiàn),但使用隱藏域就簡單的多了.而且不會有瀏覽器不支持笼蛛,用戶禁用cookie的煩惱洒放。

  • 有些時候一個form里有多個提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個按鈕提交上來的呢滨砍?我們就可以寫一個隱藏域往湿,然后在每一個按鈕處加上onclick="document.form.command.value="xx""然后我們接到數(shù)據(jù)后先檢查command的值就會知道用戶是按的那個按鈕提交上來的。

  • 有時候一個網(wǎng)頁中有多個form惋戏,我們知道多個form是不能同時提交的领追,但有時這些form確實相互作用,我們就可以在form中添加隱藏域來使它們聯(lián)系起來响逢。

  • javascript不支持全局變量绒窑,但有時我們必須用全局變量,我們就可以把值先存在隱藏域里舔亭,它的值就不會丟失了些膨。

  • 還有個例子,比如按一個按鈕彈出四個小窗口钦铺,當(dāng)點擊其中的一個小窗口時其他三個自動關(guān)閉.可是IE不支持小窗口相互調(diào)用订雾,所以只有在父窗口寫個隱藏域,當(dāng)小窗口看到那個隱藏域的值是close時就自己關(guān)掉矛洞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洼哎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缚甩,更是在濱河造成了極大的恐慌谱净,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件擅威,死亡現(xiàn)場離奇詭異壕探,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)郊丛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門李请,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞧筛,“玉大人,你說我怎么就攤上這事导盅〗匣希” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵白翻,是天一觀的道長乍炉。 經(jīng)常有香客問我,道長滤馍,這世上最難降的妖魔是什么岛琼? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮巢株,結(jié)果婚禮上槐瑞,老公的妹妹穿的比我還像新娘。我一直安慰自己阁苞,他們只是感情好困檩,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著那槽,像睡著了一般悼沿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骚灸,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天显沈,我揣著相機(jī)與錄音,去河邊找鬼逢唤。 笑死拉讯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鳖藕。 我是一名探鬼主播魔慷,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼著恩!你這毒婦竟也來了院尔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤喉誊,失蹤者是張志新(化名)和其女友劉穎邀摆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伍茄,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡栋盹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了敷矫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片例获。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡汉额,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出榨汤,到底是詐尸還是另有隱情蠕搜,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布收壕,位于F島的核電站妓灌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蜜宪。R本人自食惡果不足惜旬渠,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望端壳。 院中可真熱鬧,春花似錦枪蘑、人聲如沸损谦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽照捡。三九已至话侧,卻和暖如春栗精,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瞻鹏。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工悲立, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人新博。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓薪夕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赫悄。 傳聞我的和親對象是個殘疾皇子原献,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)埂淮,斷路器姑隅,智...
    卡卡羅2017閱讀 134,600評論 18 139
  • <input>標(biāo)簽 標(biāo)簽用于搜集用戶信息,根據(jù)不同的type屬性值倔撞,輸入字段擁有很多種形式讲仰。輸入字段可以是文本字段...
    _空空閱讀 4,018評論 0 3
  • form表單有什么作用?有哪些常用的input 標(biāo)簽痪蝇,分別有什么作用叮盘? 標(biāo)簽用于為用戶創(chuàng)建HTML表單秩贰,并向服務(wù)器...
    zx9426閱讀 596評論 0 1
  • 1.form表單有什么作用?有哪些常用的input 標(biāo)簽柔吼,分別有什么作用毒费? HTML 表單用于接收不同類型的用戶輸...
    大胡子歌歌閱讀 867評論 0 1
  • 1. form表單有什么作用?有哪些常用的input 標(biāo)簽愈魏,分別有什么作用觅玻? form表單的作用是: 表單的作用是...
    熊蛋子17閱讀 538評論 1 5