Form表單有什么作用
表單的作用是搜集用戶的輸入信息,用戶提交表單時向服務器傳輸數據,從而實現用戶與web服務器的交互。
有哪些常用的input 標簽,分別有什么作用?
type="text" 定義單行輸入文本框
type="button" 定義按鈕
type="checkbox" 定義復選框,可多選
type="radio" 定義單選框,只能單選,并且所有單選框的name值一套保持一致,這樣才能生效
type="submit" 定義提交按鈕
type="password" 定義密碼,輸入時*代替輸入值,看不到輸入值
type="reset" 定義重置按鈕,重置后表單重回默認時的狀態
type="color" html5中用于指定顏色的控件
type="date" html5中用于輸入日期的控件
post和get的區別
最直觀的區別就是GET把參數包含在URL中,POST通過request body傳遞參數。
GET在瀏覽器回退時是無害的,而POST會再次提交請求。
GET產生的URL地址可以被Bookmark,而POST不可以。
GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。
GET請求只能進行url編碼,而POST支持多種編碼方式。
GET請求參數會被完整保留在瀏覽器歷史記錄里,而POST中的參數不會被保留。
GET請求在URL中傳送的參數是有長度限制的,而POST沒有。
對參數的數據類型,GET只接受ASCII字符,而POST沒有限制。
GET比POST更不安全,因為參數直接暴露在URL上,所以不能用來傳遞敏感信息。
GET參數通過URL傳遞,POST放在Request body中。
在input里,name 有什么作用?
name 屬性規定 input 元素的名稱。用于對提交到服務器后的表單數據進行標識,或者在客戶端通過 JavaScript 引用表單數據。只有設置了 name 屬性的表單元素,POST和GET的時候name和input中的值會形成鍵/值對,才能在提交表單時傳遞它們的值
用途1:作為可與服務器交互數據的HTML元素的服務器端的標示,比如input、select、textarea、和button等。我們可以在服務器端根據其Name通過Request.Params取得元素提交的值。
用途2:HTML元素Input type='radio'分組,我們知道radio button控件在同一個分組類,check操作是mutex的,同一時間只能選中一個radio,這個分組就是根據相同的Name屬性來實現的。
用途3:建立頁面中的錨點,我們知道link是獲得一個頁面超級鏈接,如果不用href屬性,而改用Name,如:,我們就獲得了一個頁面錨點。
用途4:作為對象的Identity,如Applet、Object、Embed等元素。比如在Applet對象實例中,我們將使用其Name來引用該對象。
用途5:在IMG元素和MAP元素之間關聯的時候,如果要定義IMG的熱點區域,需要使用其屬性usemap,使usemap="#name"(被關聯的MAP元素的Name)。
用途6:某些特定元素的屬性,如attribute,meta和param。例如為Object定義參數或Meta中。
radio如何進行分組
radio通過name屬性值來進行分組 具有相同的name屬性值的radio為一組
placeholder 屬性有什么作用?
placeholder屬性一般會在輸入框有一個提示信息,該提示會在輸入字段為空時顯示,并會在字段獲得焦點時消失。但是要注意:
1 ?placeholder 屬性適用于以下的類型:text, search, url, telephone, email 以及 password
2 ?placeholder為HTML5的新屬性
type=hidden隱藏域有什么作用? 舉例說明
隱藏域在頁面中對于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發送信息,以利于被處理表單的程序所使用。瀏覽者單擊發送按鈕發送表單的時候,隱藏域的信息也被一起發送到服務器。例如可以防御CSRF(Cross-site request forgery,跨域請求偽造)攻擊,解決辦法: 在Form表單加一個hidden field,里面是服務端生成的足夠隨機數的一個Token(惡意網站猜不到也無法獲取到相同的Token), 然后使用一個攔截器interceptor來檢查每一個非get請求, 看該token與服務器token是否一致,不一致的不受理該請求
下面列舉一些隱藏域的使用場景:
有些時候我們要給用戶一信息,讓他在提交表單時提交上來以確定用戶身份,如sessionkey等。當然這些東西也能用cookie實現,但使用隱藏域就簡單的多了.而且不會有瀏覽器不支持,用戶禁用cookie的煩惱。
有些時候一個form里有多個提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個按鈕提交上來的呢?我們就可以寫一個隱藏域,然后在每一個按鈕處加上onclick=”document.form.command.value=”xx””然后我們接到數據后先檢查command的值就會知道用戶是按的那個按鈕提交上來的。
有時候一個網頁中有多個form,我們知道多個form是不能同時提交的,但有時這些form確實相互作用,我們就可以在form中添加隱藏域來使它們聯系起來。