1、form表單有什么用像街?有哪些常用的input標簽黎棠,分別有什么作用晋渺?
表單是web頁面與服務器交互過程中最重要的信息來源,它會搜集用戶的輸入脓斩,并以提交的方式來傳輸?shù)椒掌魃线M行處理并可能返回反饋的一個媒介木西,從而來實現(xiàn)人機交互。
常見的input標簽及作用有下面幾個
<input type="text"> 單行文本輸入框
<input type="password"> 密碼輸入框
<input type="checkbox"> 復選框
<input type="radio"> 單選框
<input type="file"> 上傳按鈕
<input type="submit"> 提交按鈕
<input type="button"> 按鈕(也可以寫為<button>內容</button>)
<input type="reset"> 重置按鈕
<select> 下拉單選
<option></option>
<option></option>
</select>
<textarea></textarea> 多行文本輸入框
<input type="number"> 數(shù)字輸入框
<input type="hidden"> 隱藏域
2随静、form的method屬性get和post的區(qū)別是什么八千?
1.get方法是將提交內容拼成一個字符串進行提交,提交的輸入項name和value值會暴露(但我們不能夠憑這一點就直接判定post方法比get方法安全)燎猛,而且在內容非常龐雜的時候恋捆,因為瀏覽器輸入域名的位置有字數(shù)限制可能會截取一部分,不能完全提交重绷,而post方法就沒有這一缺點
2.get請求的URL可以被瀏覽器緩存沸停;post的請求不能夠被瀏覽器緩存:這涉及到一個使用場景的問題,如果用戶的輸入不是非常重要機密的信息就比如性別年齡這一種昭卓,當下次用戶還是使用同一瀏覽器進行訪問這個網(wǎng)站的時候愤钾,使用get方法可能會更合適一些。
3.get表達的是一種冪等的候醒,只讀的能颁,純粹的操作,即它除了返回結果不應該會產生其它副作用(如寫數(shù)據(jù)庫)倒淫,因此絕大部分get請求(通常超過90%)都直接被CDN緩存了伙菊,這能大大減少web服務器的負擔。而post所表達的語義是非冪等的敌土,有副作用的操作镜硕,所以必須交由web服務器處理。(關于冪等的概念:Idempotent - 冪等 冪等的概念是指同一個請求方法執(zhí)行多次和僅執(zhí)行一次的效果完全相同纯赎。按照RFC規(guī)范谦疾,PUT,DELETE和安全方法都是冪等的犬金。同樣念恍,這也僅僅是規(guī)范,服務端實現(xiàn)是否冪等是無法確保的晚顷。)
3峰伙、在input中,name有什么作用该默?
name是作為inout的一個屬性存在的瞳氓,在處理表單時,我們的關注點為用戶填寫的信息栓袖,此時匣摘,表單的每一項的name都作為我們提取到的信息的一個”標簽“店诗,可以理解為每個分類的一個標簽名稱,每一個表單項都必須要有name值音榜,否則這個表單無法進行任何操作庞瘸,相當屬于一個廢的表單。有一個需要注意的點:在單選按鈕組中赠叼,我們的需求一般是多個中選擇一個合理的擦囊,那么這個時候這個單選按鈕組無論有幾個<input type="radio">
它們的name都必須一致。而提交的內容顯示形式為:name:value的形式嘴办。
4瞬场、radio如何分組?
這個問題即為上個問題末尾所說的涧郊,一組單選按鈕需要選擇一個時贯被,那么無論有幾個<input type="radio">
它們的name都必須一致。以下是個示例:
<label>請選擇性別</label>
<input type="radio" value="男" name="gender">男
<input type="radio" value="女" name="gender">女
<label>請選擇晚飯吃什么</label>
<input type="radio" value="one" name="dinner">火鍋
<input type="radio" value="two" name="dinner">披薩
<input type="radio" value="three" name="dinner">烤魚
<input type="radio" value="four" name="dinner">沙拉
5底燎、placeholder有什么作用刃榨?
我們經(jīng)常會遇到一些表單沒有l(wèi)abel提示項,這個時候双仍,表單可以用placeholder來對用戶進行提醒,這一個輸入框是需要輸入什么樣的內容桌吃,如下圖紅框內容:
6朱沃、type=hidden隱藏域有什么作用?
根據(jù)我的個人少少的經(jīng)驗所得,一般后端開發(fā)會經(jīng)常使用這個表單項茅诱。隱藏域可以存數(shù)一些數(shù)據(jù),在頁面上是不做展示的,這個有一個比較好的作用是可以預防csrf攻擊逗物,給這個隱藏域賦一個值,當用戶點擊提交時后臺進行驗證隱藏域的內容是否是我們定義的值瑟俭,如果是翎卓,那么這個表單是正常的,如果沒有隱藏域或者隱藏域的位置不對摆寄,內容不對失暴,那么我們需要警惕是否被攻擊。
7微饥、HTML表單的用法
當頁面上有表單項的時候逗扒,能夠提交的前提是這一部分表單必須有<form></form>
標簽包裹,否則不能提交G烽佟>丶纭!原因是:表單提交需要有一個提交地址以及提交方式肃续,也就是我們需要給form標簽規(guī)定其method(提交方式)和action(提交地址)以便服務器能夠處理黍檩。內容中的input中每一種表單項需要給每一個規(guī)定其value值(有一部分value初始值可有可無叉袍,比如說<input type="text">
;當然<input type="password">
是沒必要有初始值的也不建議有刽酱;select中的option每一個需要有一個value值以便進行處理喳逛;<input type="radio">
和<input type="checkbox">
的value值是必須存在的)和name值(必需)。最后我們需要一個提交按鈕肛跌,一般是用<input type="submit">
來進行提交的艺配。