# <button> 元素
`<button>`元素繼承了`HTMLButtonElement`接口。它有以下的實例屬性。
**(1)HTMLButtonElement.accessKey**
`HTMLButtonElement.accessKey`屬性返回一個字符串,表示鍵盤上對應的鍵,通過`Alt + 這個鍵`可以讓按鈕獲得焦點。該屬性可讀寫。
**(2)HTMLButtonElement.autofocus**
`HTMLButtonElement.autofocus`屬性是一個布爾值,表示頁面加載過程中,按鈕是否會自動獲得焦點。該屬性可讀寫。
**(3)HTMLButtonElement.disabled**
`HTMLButtonElement.disabled`屬性是一個布爾值,表示該按鈕是否禁止點擊。該屬性可讀寫。
**(4)HTMLButtonElement.form**
`HTMLButtonElement.form`屬性是一個表單元素,返回該按鈕所在的表單。該屬性只讀。如果按鈕不屬于任何表單,該屬性返回`null`。
**(5)HTMLButtonElement.formAction**
`HTMLButtonElement.formAction`返回一個字符串,表示表單提交的 URL。該屬性可讀寫,一旦設置了值,點擊按鈕就會提交到該屬性指定的 URL,而不是`<form>`元素指定的 URL。
**(6)HTMLButtonElement.formEnctype**
`HTMLButtonElement.formEnctype`屬性是一個字符串,表示數據提交到服務器的編碼類型。該屬性可讀寫,一旦設置了值,點擊按鈕會按照該屬性指定的編碼方式,而不是`<form>`元素指定的編碼方式。
該屬性可以取以下的值。
- `application/x-www-form-urlencoded`(默認值)
- `multipart/form-data`(上傳文件的編碼方式)
- `text/plain`
**(7)HTMLButtonElement.formMethod**
`HTMLButtonElement.formMethod`屬性是一個字符串,表示瀏覽器提交表單的 HTTP 方法。該屬性可讀寫,一旦設置了值,點擊后就會采用該屬性指定的 HTTP 方法,而不是`<form>`元素指定的編碼方法。
**(8)HTMLButtonElement.formNoValidate**
`HTMLButtonElement.formNoValidate`屬性是一個布爾值,表示點擊按鈕提交表單時,是否要跳過表單校驗的步驟。該屬性可讀寫,一旦設置會覆蓋`<form>`元素的`novalidate`屬性。
**(9)HTMLButtonElement.formTarget**
`HTMLButtonElement.formTarget`屬性是一個字符串,指定了提交了表單以后,哪個窗口展示服務器返回的內容。該屬性可讀寫,一旦設置會覆蓋`<form>`元素的`target`屬性。
**(10)HTMLButtonElement.labels**
`HTMLButtonElement.labels`返回`NodeList`實例,表示那些綁定按鈕的`<label>`元素。該屬性只讀。
```javascript
/* HTML 代碼如下
<label id="label1" for="test">Label 1</label>
<button id="test">Button</button>
<label id="label2" for="test">Label 2</label>
*/
const button = document.getElementById('test');
for(var i = 0; i < button.labels.length; i++) {
console.log(button.labels[i].textContent);
}
// "Label 1"
// "Label 2"
```
上面代碼中,兩個`<label>`元素綁定`<button>`元素。`button.labels`返回這兩個`<label>`元素。
**(11)HTMLButtonElement.name**
`HTMLButtonElement.name`屬性是一個字符串,表示按鈕元素的`name`屬性。如果沒有設置`name`屬性,則返回空字符串。該屬性可讀寫。
**(12)HTMLButtonElement.tabIndex**
`HTMLButtonElement.tabIndex`是一個整數,代表按鈕元素的 Tab 鍵順序。該屬性可讀寫。
**(13)HTMLButtonElement.type**
`HTMLButtonElement.type`屬性是一個字符串,表示按鈕的行為。該屬性可讀寫,可能取以下的值。
- `submit`:默認值,表示提交表單。
- `reset`:重置表單。
- `button`:沒有任何默認行為。
**(14)HTMLButtonElement.validationMessage**
`HTMLButtonElement.validationMessage`屬性是一個字符串,表示沒有通過校驗時顯示的提示信息。該屬性只讀。
**(15)HTMLButtonElement.validity**
`HTMLButtonElement.validity`屬性返回該按鈕的校驗狀態(`ValidityState`)。該屬性只讀。
**(16)HTMLButtonElement.value**
`HTMLButtonElement.value`屬性返回該按鈕綁定的值。該屬性可讀寫。
**(17)HTMLButtonElement.willValidate**
`HTMLButtonElement.willValidate`屬性是一個布爾值,表示該按鈕提交表單時是否將被校驗,默認為`false`。該屬性只讀。
- 前言
- 入門篇
- 導論
- 歷史
- 基本語法
- 數據類型
- 概述
- null,undefined 和布爾值
- 數值
- 字符串
- 對象
- 函數
- 數組
- 運算符
- 算術運算符
- 比較運算符
- 布爾運算符
- 二進制位運算符
- 其他運算符,運算順序
- 語法專題
- 數據類型的轉換
- 錯誤處理機制
- 編程風格
- console 對象與控制臺
- 標準庫
- Object 對象
- 屬性描述對象
- Array 對象
- 包裝對象
- Boolean 對象
- Number 對象
- String 對象
- Math 對象
- Date 對象
- RegExp 對象
- JSON 對象
- 面向對象編程
- 實例對象與 new 命令
- this 關鍵字
- 對象的繼承
- Object 對象的相關方法
- 嚴格模式
- 異步操作
- 概述
- 定時器
- Promise 對象
- DOM
- 概述
- Node 接口
- NodeList 接口,HTMLCollection 接口
- ParentNode 接口,ChildNode 接口
- Document 節點
- Element 節點
- 屬性的操作
- Text 節點和 DocumentFragment 節點
- CSS 操作
- Mutation Observer API
- 事件
- EventTarget 接口
- 事件模型
- Event 對象
- 鼠標事件
- 鍵盤事件
- 進度事件
- 表單事件
- 觸摸事件
- 拖拉事件
- 其他常見事件
- GlobalEventHandlers 接口
- 瀏覽器模型
- 瀏覽器模型概述
- window 對象
- Navigator 對象,Screen 對象
- Cookie
- XMLHttpRequest 對象
- 同源限制
- CORS 通信
- Storage 接口
- History 對象
- Location 對象,URL 對象,URLSearchParams 對象
- ArrayBuffer 對象,Blob 對象
- File 對象,FileList 對象,FileReader 對象
- 表單,FormData 對象
- IndexedDB API
- Web Worker
- 附錄:網頁元素接口
- a
- img
- form
- input
- button
- option
- video,audio