form元素只是一個數據獲取元素的容器,而容器內的元素稱爲表單控件。最經常使用的表單控件是input元素javascript
accept、alt、checked、disabled、maxlength、name、readonly、size、src、type、value這11個屬性是input元素的傳統元素屬性html
autocomplete、autofocus、form、formaction、formenctype、formmethod、formnovalidate、formtarget、height、list、max、min、multiple、novalidate、pattern、placeholder、required、step、width這19個屬性是HTML5新增的元素屬性java
name屬性用於規定input元素的名稱,用於對提交到服務器後的表單數據進行標識,或者在客戶端經過javascript引用表單數據正則表達式
[注意]只有設置了name屬性的表單元素才能在提交表單時傳遞它們的值瀏覽器
type屬性用來規定input元素的類型服務器
[注意]若是input元素沒有設置type屬性,或者設置的值在瀏覽器中不支持,那麼輸入類型會變成type="text"post
詳細狀況移步至此測試
accept屬性用來規定可以經過文件上傳進行提交的文件類型。理論上能夠用來限制上傳文件類型,然而它只是建設性的,並極可能被忽略,它接受逗號分隔的MIME類型ui
[注意]該屬性只能與type="file"配合使用this
<input type="file" accept="image/gif,image/jpeg,image/jpg">
alt屬性爲圖像輸入規定替代文本,功能相似於image元素的alt屬性,爲用戶因爲某些緣由沒法查看圖像時提供備選信息
[注意]alt屬性只能與type="image"的input元素配合使用
<input type="image" src="#" alt="測試圖片">
checked屬性規定在頁面加載時應該被預先選定的input元素,也能夠在頁面加載後,經過javascript進行設置
[注意]checked屬性只能與type="radio"或type="checkbox"的input元素配合使用
<input type="radio" name="radio" value="1" checked> <input type="radio" name="radio" value="2"> <input type="checkbox" name="checkbox" value="1"> <input type="checkbox" name="checkbox" value="2"> <script> var oInput = document.getElementsByTagName('input'); for(var i = 0,len = oInput.length; i < len; i++){ oInput[i].onmouseover = function(){ this.checked = 'checked'; } } </script>
disabled屬性規定應該禁用input元素。被禁用的字段是不能修改的,也不可使用tab按鍵切換到該字段,但能夠選中或拷貝其文本
[注意1]disabled屬性沒法與type="hidden"的input元素一塊兒使用
[注意2]對於IE7-瀏覽器必須設置爲disabled="disabled",而不能夠直接設置disabled,不然使用javascript控制時將失效
<button id="btn1">輸入域可用</button> <button id="btn2">輸入域不可用</button> <input id="test" disabled value="內容"> <script> btn1.onclick = function(){ test.removeAttribute('disabled'); } btn2.onclick = function(){ test.setAttribute('disabled','disabled'); } </script>
readonly屬性規定輸入字段爲只讀。只讀字段是不能修改的,但用戶仍然可使用tab按鍵切換到該字段,還能夠選中或拷貝其文本
readonly屬性可與type="text"或"password"的input元素配合使用
[注意]IE7-瀏覽器不支持使用javascript控制readonly屬性
<button id="btn1">輸入域只讀</button> <button id="btn2">輸入域可讀寫</button> <input id="test" value="內容" readonly> <script> btn1.onclick = function(){ test.setAttribute('readonly','readonly'); } btn2.onclick = function(){ test.removeAttribute('readonly'); } </script>
maxlength屬性規定輸入字段的最大長度,以字符個數計
[注意]該屬性只能與type="text"或type="password"的input元素配合使用
<input maxlength="6"> <input type="password" maxlength="6">
size屬性對於type="text"或"password"的input元素是可見的字符數;而對於其餘類型,是以像素爲單位的輸入字段寬度
[注意]因爲size屬性是一個可視化的設計屬性,推薦使用CSS來代替它
<input size="1"> <input type="password" size="2">
src屬性做爲提交按鈕顯示的圖像的URL
[注意]src屬性只能且必須與type="image"的input元素配合使用
<form action="#"> <input name="test"> <input type="image" src="http://sandbox.runjs.cn/uploads/rs/26/ddzmgynp/submit.jpg" width="99" height="99" alt="測試圖片"> </form>
value屬性爲input元素設定值。對於不一樣的輸入類型,value屬性的用法也不一樣:
type="button"、"reset"、"submit"用於定義按鈕上的顯示的文本
type="text"、"password"、"hidden"用於定義輸入字段的初始值
type="checkbox"、"radio"、"image"用於定義與輸入相關聯的值
[注意1]type="checkbox"或"radio"必須設置value屬性
[注意2]value屬性沒法與type="file"的input元素一塊兒使用
<button id="btn1">1</button> <button id="btn2">2</button> <input id="test"> <script> btn1.onclick = btn2.onclick =function(){ test.value=this.innerHTML; } </script>
autocomplete屬性能夠在個別元素或整個表單上開啓或關閉瀏覽器的自動完成功能。當用戶在字段開始鍵入時,瀏覽器基於以前鍵入過的值,顯示出在字段中填寫的選項
autocomplete屬性適用form元素以及如下類型的input元素:text、search、url、telephone、email、password、date pickers、range、color
[注意]IE瀏覽器不支持該屬性,只有元素擁有name屬性,該屬性纔有效
<input name="test1" autocomplete="on"> <input name="test2" autocomplete="off">
autofocus屬性規定在頁面加載時,域自動地得到焦點
autofous屬性適用於button、input、keygen、select和textarea元素
<input name="test1"> <input name="test2" autofocus>
novalidate屬性規定在提交表單時不驗證form或input域
novalidate屬性適用於form元素以及如下類型的input元素:text、search、url、telephone、email、password、date pickers、range、color
[注意]IE9-瀏覽器不支持
height屬性用於規定image類型的input標籤的圖像高度
[注意]該屬性只適用於image類型的input標籤
width屬性用於規定image類型的input標籤的圖像寬度
[注意]該屬性只適用於image類型的input標籤
//http://127.0.0.1/form.html?test=123&x=38&y=57# <form action="#"> <input name="test"> <input type="image" src="submit.jpg" width="99" height="99"> </form>
大多數輸入類型包含一個屬性list,它和一個新元素datalist結合使用,這個元素定義當在表單控件輸入數據時可用的一個選項列表。datalist元素自身不會在頁面顯示,而是爲其餘元素的list屬性提供數據
list屬性適用於form元素以及如下類型的input元素:text、search、url、telephone、email、password、date pickers、range、color
[注意]IE9-瀏覽器及safari瀏覽器不支持
min屬性規定輸入域所容許的最大值
max屬性規定輸入域所容許的最小值
step屬性爲輸入域規定合法的數字間隔
min、max、step屬性適用於如下類型的input元素:date pickers、number、range
<input type="number" min="0" max="10" step="0.5" value="6" />
<input type="range" min="0" max="10" step="0.5" value="6" />
multiple屬性規定按住ctrl按鍵,輸入字段能夠選擇多個值
該屬性適用於type="email"和"file"的input元素
[注意]該屬性IE9-瀏覽器不支持
<button id="btn1">打開文件多選</button> <button id="btn2">關閉文件多選</button> <br><br> <input id="test" type="file" multiple> <script> btn1.onclick = function(){ test.setAttribute('multiple',''); }; btn2.onclick = function(){ test.removeAttribute('multiple'); }; </script>
pattern屬性規定用於驗證input域的模式。模型pattern是正則表達式
pattern屬性適用於如下類型的input元素:text、search、url、tel、email、password
[注意]IE9-瀏覽器及safari瀏覽器不支持
<form action="#"> <input pattern="\d{3}"> <input type="submit"> </form>
placeholder屬性提供佔位符文字,描述輸入域所期待的值。佔位符會在輸入域爲空時顯示出現,在輸入域得到焦點時消失
placeholder屬性適用於如下類型的input元素:text、search、url、tel、email、password
[注意]IE9-瀏覽器不支持
<form action="#"> <input type="tel" placeholder="請輸入數字" pattern="\d{11}"> <input type="submit"> </form>
要修改placeholder的顏色須要使用::placeholder
::placeholder{color:green;}
required屬性規定必須在提交以前填寫輸入域(不能爲空)
required屬性適用於如下類型的input元素:text、search、url、telephone、email、password、date pickers、number、checkbox、radio、file
[注意]IE9-瀏覽器及safari瀏覽器不支持
<form action="#"> <input required> <input type="submit"> </form>
form屬性規定輸入域所屬的一個或多個表單,form屬性必須和所屬表單的id
form屬性適用於全部input標籤的類型,若須要引用一個以上的表單時,用空格分隔
[注意]IE瀏覽器不支持該屬性,只有元素擁有name屬性,該屬性纔有效
<form id="form" action="#"> <input type="submit"> </form> <input name="test" form="form">
表單重寫屬性
表單重寫屬性容許重寫form元素的某些屬性設定。其中,formnovalidate適用於button或input元素,而其餘屬性適用於submit或reset的button或input元素
重寫表單的action屬性
<form action="#" > First name: <input type="text" name="fname" /><br /> Last name: <input type="text" name="lname" /><br /> <input type="submit" value="提交" /><br /> <input type="submit" formaction="#" value="以管理員身份提交" /> </form>
重寫表單的enctype屬性
<form action="#" method="post"> First name: <input type="text" name="fname" /><br /> <input type="submit" value="提交" /> <input type="submit" formenctype="multipart/form-data" value="以multipart/form-data編碼提交" /> </form>
重寫表單的method屬性
<form action="#" method="get"> First name: <input type="text" name="fname" /><br /> Last name: <input type="text" name="lname" /><br /> <input type="submit" value="提交" /> <input type="submit" formmethod="post" formaction="#" value="使用POST提交" /> </form>
重寫表單的novalidate屬性
<form action="#" method="get"> E-mail: <input type="email" name="userid" /><br /> <input type="submit" value="提交" /><br /> <input type="submit" formnovalidate="formnovalidate" value="進行沒有驗證的提交" /> </form>
重寫表單的target屬性
<form action="#"> First name: <input type="text" name="fname" /><br /> Last name: <input type="text" name="lname" /><br /> <input type="submit" value="提交" /> <input type="submit" formtarget="_blank" value="提交到新窗口/選項卡" /> </form>