若是form
表單內沒有submit
按鈕,只有button
元素,那麼這個button
能夠升級爲submit
按鈕。後端
form
表單用來向服務器提交信息,經常使用屬性瀏覽器
action
:提交表單的地址name
:頁面中可能不止一個表單,用name
來區分,PS:id 也能夠method
:提交表單的方法,post
或get
target
:在何處打開action
enctype
:安全
application/x-www-form-urlencoded
:在發送前編碼全部字符(默認)text/plain
:空格轉換爲 "+" ,但不對特殊字符編碼multipart/form-data
:使用包含文件上傳控件的表單時,必須使用該值注:post
請求和get
請求區別:參考文章:99% 的人都理解錯了 HTTP 中 GET 與 POST 的區別服務器
post
比get
安全性高,post
經過request body
傳遞數據,get
把參數包含在 URL 中post
通常用於向服務器傳送數據,get
通常用於向服務器獲取數據get
請求頁面能夠被收藏,post
不能夠get
只能進行 URL 編碼,而 post
支持多種編碼方式get
在 URL 中傳遞參數有長度限制,而 post
沒有input
標籤用來接收用戶填寫的信息,配合label
使用,它的for
屬性能夠選中form
表單內的id
屬性或者用label
把input
包裹起來就不須要用for
了
經常使用屬性app
type
:經常使用的值post
password
:輸入的內容自動自動變成小圓點checkbox
:多選,靠name
屬性分組,提交到後端的時候被選中的value
是以 "," 分割的一個字符串,經過name
屬性得到radio
:單選,靠name
分組hidden
:暫存一些信息file
:文件上傳ui
accept
設置上傳文件格式multiple
文件多選submit/button/reset
:submit
能夠提交表單,button
不能提交表單,reset
清空表單placeholder
:提示性文字,一旦輸入內容就消失disabled
:該input
被禁用require
:該input
必須被填寫select
用來設置下拉菜單,屬性multiple
可設置多選this
option
標籤,屬性selected
:默認選擇<form id="myColor" method="post"> <input type="radio" name="color" value="red">Red <input type="radio" name="color" value="green">Green <input type="radio" name="color" value="blue">Blue </form> <form id="myText" method="post"> <input type="text" value="hello"> <input type="text" value="world"> <input type="text" value="JS" autofocus> <input type="submit" value="提交"> </form> <script> var myColor = document.getElementById('myColor') var myText = document.getElementById('myText') //取得表單中第一個字段 myColor.elements[0] //取得表單中`name`爲`color1`的字段 myColor.elements[color1] //取得表單中字段的數量 myColor.elements.length //當前字段禁用 myColor.elements[0].disabled = true //點擊input 選中默認展現的value myText.elements[1].addEventListener('blur',function(e){ e.target.select() }) </script>
document.forms[0]
得到表單myColor.elements[0]
可得到到表單中的第一個字段,多選框name
不一樣,也能夠用name
的值查找,如myColor.elements[color1]
。myColor.elements.length
取得表單中字段的數量.myColor.elements[0].disabled = true
禁用表單當前字段,true
爲禁用,false
爲恢復使用,能夠應用在表單提交以後,防止用戶反覆提交表單編碼
myText.addEventListener('click',function(){ if(this.elements[3].type === 'submit'){ this.elements[3].disabled = true } })
autofocus
在表單字段中設置,當瀏覽器加載時自動把焦點移到該字段focus()
、change()
、blur()
分別是得到焦點時觸發,失去焦點並改變value
才觸發,失去焦點時觸發,其中change()
和blur()
前後順序並無嚴格規定。
輸入框選中高亮,輸入非數字,改變顏色url
myText.elements[0].addEventListener('focus',function(e){ if(e.target.style.borderColor !== 'red'){ e.target.style.borderColor = 'yellow' } }) myText.elements[0].addEventListener('blur',function(e){ console.log(e.target.value) if(/[^\d]/.test(e.target.value)){ e.target.style.borderColor = 'red' }else{ e.target.style.borderColor = '' } }) myText.elements[0].addEventListener('change',function(e){ if(/[^\d]/.test(e.target.value)){ e.target.style.borderColor = 'blue' }else{ e.target.style.borderColor = '' } })
input
可設置size
、maxlength
,不能設置rows
、cols
;而textarea
則能夠,但不能設置最大字符數。