form表單的作用
form用于把用戶輸入的數據提交到后臺
<form name="myForm" action="" method="get"> </form>
name:表單提交時的名稱
action:提交到的地址
method:提交方式,get和post(默認是get)post 和 get 方式的區別
-
數據交換方式不同,get使提交的數據在url可以看到(url中包含提交的數據),post看不到;
- get一般用于提交少量數據(然后后臺返回大量數據),post用于提交大量數據(然后后臺返回少量數據);
- get最多提交1k數據,受瀏覽器的限制(瀏覽器地址欄輸入限制不超過1k)。post理論上無限制,受服務器限制;
- get提交的數據在瀏覽器歷史記錄中,安全性不好
- 常用的input 標簽
- type="text":
用于輸入文本。
<input name="username" type="text" placeholder="用戶名" maxlength=10 />
placeholder屬性(可選)展示的是輸入框里的提示,maxlength(可選)限制最大輸入長度; - type="password":
用于輸入密碼,輸入的內容顯示為星號。
<input name="password" type="password" placeholder="密碼" /> - type="radio":
單選圓圈按鈕。注意:name要相同才能實現單選,value要有值。
<input type="radio" name="sex" value="male" /> 男
<input type="radio" name="sex" value="female" /> 女 - type="checkbox":
復選框。加checked屬性會默認選上。提交時,如果選中(如bike),則bike=on
<input type="checkbox" name="bike" checked/>自行車
<input type="checkbox" name="car" />汽車 - type="hidden":
隱藏域,用戶看不到,用于暫存數據。或者安全性校驗
<input name="url_delete" type="hidden" value="/delete.php" />
<input name="csrf_token" type="hidden" value="a23dafd23444" />
input里,name 的作用
name給表單命名,告訴服務器提交的是哪個表單的數據。
name屬性必須有,否則表單數據無法提交到服務器。type=hidden隱藏域的作用
隱藏域在頁面中對于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發送信息,以利于被處理表單的程序所使用。瀏覽者單擊發送按鈕發送表單的時候,隱藏域的信息也被一起發送到服務器。
有些時候我們要給用戶一信息,讓他在提交表單時提交上來以確定用戶身份,如sessionkey,等等.當然這些東西也能用cookie實現,但使用隱藏域就簡單的多了.而且不會有瀏覽器不支持,用戶禁用cookie的煩惱。
有些時候一個form里有多個提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個按鈕提交上來的呢?我們就可以寫一個隱藏域,然后在每一個按鈕處加上 onclick="document.form.command.value=“xx”"然后我們接到數據后先檢查command的值就會知道用戶是按的那個按鈕提交上來的。
有時候一個網頁中有多個form,我們知道多個form是不能同時提交的,但有時這些form確實相互作用,我們就可以在form中添加隱藏域來使它們聯系起來。
javascript不支持全局變量,但有時我們必須用全局變量,我們就可以把值先存在隱藏域里,它的值就不會丟失了。
還有個例子,比如按一個按鈕彈出四個小窗口,當點擊其中的一個小窗口時其他三個自動關閉.可是IE不支持小窗口相互調用,所以只有在父窗口寫個隱藏域,當小窗口看到那個隱藏域的值是close時就自己關掉。
- <button>提交</button>、<a class="btn" href="#">提交</a>、<input type="submit" value="提交"> 三者有什么區別?
- <button>提交</button>
僅僅是一個按鈕,并沒有直接提交表單數據的功能 - <a class="btn" href="#">提交</a>
如果href的鏈接為提交數據的js文件,則可以實現提交數據 - <input type="submit" value="提交">
是表單提交,有默認的樣式封裝