<input type="image">
型別為image的<input>元素用於建立圖形提交按鈕,即採用影像而非文字形式的提交按鈕。
試一試
值
<input type="image">元素不接受value屬性。要顯示的影像的路徑在src屬性中指定。
其他屬性
除了所有<input>元素共享的屬性外,image按鈕輸入還支援以下屬性。
alt
formaction
一個字串,指示要將資料提交到的 URL。這優先於擁有<input>的<form>元素上的action屬性。
此屬性也適用於<input type="submit">和<button>元素。
formenctype
一個字串,用於標識將表單資料提交到伺服器時要使用的編碼方法。有三個允許的值
application/x-www-form-urlencoded-
這是預設值,它在使用
encodeURI()等演算法對文字進行百分比編碼後,將表單資料作為字串傳送。 multipart/form-data-
使用
FormDataAPI 管理資料,允許將檔案提交到伺服器。如果您的表單包含任何型別為file的<input>元素(<input type="file">),則必須使用此編碼型別。 text/plain-
純文字;主要僅對除錯有用,因此您可以輕鬆檢視要提交的資料。
如果指定,則formenctype屬性的值將覆蓋擁有表單的action屬性。
此屬性也適用於<input type="submit">和<button>元素。
formmethod
一個字串,指示在提交表單資料時要使用的 HTTP 方法;此值將覆蓋擁有表單提供的任何method屬性。允許的值為
get-
透過以
formaction或action屬性給出的 URL 開頭,附加問號(“?”)字元,然後附加表單資料(如formenctype或表單的enctype屬性所述進行編碼)來構建 URL。然後,使用 HTTPget請求將此 URL 傳送到伺服器。此方法適用於僅包含ASCII字元且沒有副作用的簡單表單。這是預設值。 post-
表單資料包含在傳送到由
formaction或action屬性給出的 URL 的請求的主體中,使用 HTTPpost請求。此方法支援複雜資料和檔案附件。 dialog-
此方法用於指示按鈕關閉與輸入關聯的對話方塊,並且根本不傳輸表單資料。
此屬性也適用於<input type="submit">和<button>元素。
formnovalidate
一個布林屬性,如果存在,則指定在提交到伺服器之前不應驗證表單。這將覆蓋元素擁有表單上的novalidate屬性的值。
此屬性也適用於<input type="submit">和<button>元素。
formtarget
一個字串,指定一個名稱或關鍵字,指示在提交表單後顯示接收到的響應的位置。該字串必須是瀏覽上下文(即選項卡、視窗或<iframe>)的名稱。此處指定的值將覆蓋擁有此輸入的<form>
除了選項卡、視窗或內聯框架的實際名稱之外,還可以使用一些特殊的關鍵字。
_self-
將響應載入到與包含表單的瀏覽上下文相同的上下文中。這將用接收到的資料替換當前文件。如果未指定,則使用此預設值。
_blank-
將響應載入到一個新的、未命名的瀏覽上下文中。這通常是與當前文件相同的視窗中的一個新選項卡,但可能會根據使用者代理的配置而有所不同。
_parent-
將響應載入到當前瀏覽上下文的父瀏覽上下文中。如果沒有父上下文,則其行為與
_self相同。 _top-
將響應載入到頂級瀏覽上下文中;這是當前上下文的最高祖先的瀏覽上下文。如果當前上下文是頂級上下文,則其行為與
_self相同。
此屬性也適用於<input type="submit">和<button>元素。
height
一個數字,指定使用src屬性指定的影像的繪製高度(以CSS畫素為單位)。
src
一個字串,指定要顯示的影像檔案的URL,以表示圖形提交按鈕。當用戶與影像互動時,輸入將像任何其他按鈕輸入一樣處理。
width
一個數字,指示影像的繪製寬度(以CSS畫素為單位)。
已棄用屬性
以下屬性由HTML 4為image輸入定義,但並非所有瀏覽器都實現了該屬性,並且此後已棄用。
usemap
使用影像輸入
基本的影像輸入功能
讓我們來看一個包含所有基本功能的基本示例(這些功能與<img>元素上的功能完全相同)。
<input
id="image"
type="image"
width="100"
height="30"
alt="Login"
src="https://raw.githubusercontent.com/mdn/learning-area/master/html/forms/image-type-example/login.png" />
覆蓋預設表單行為
<input type="image">元素(如常規提交按鈕)可以接受許多屬性,這些屬性可以覆蓋預設的表單行為。
formaction-
處理輸入元素提交的資訊的程式的URI;覆蓋元素的表單所有者的
action屬性。 formenctype-
指定用於將表單提交到伺服器的內容型別。可能的值為
application/x-www-form-urlencoded:如果未指定該屬性,則為預設值。text/plain.
如果指定了此屬性,則它將覆蓋元素的表單所有者的
enctype屬性。 formmethod-
指定瀏覽器用於提交表單的HTTP方法。可能的值為
post:表單中的資料包含在表單的主體中,併發送到伺服器。get:表單中的資料附加到form屬性URI,以'?'作為分隔符,並將生成的URI傳送到伺服器。當表單沒有副作用並且只包含ASCII字元時,使用此方法。
如果指定,則此屬性將覆蓋元素的表單所有者的
method屬性。 formnovalidate-
一個布林屬性,指定在提交表單時不應驗證表單。如果指定了此屬性,則它將覆蓋元素的表單所有者的
novalidate屬性。 formtarget-
一個名稱或關鍵字,指示在提交表單後接收到的響應在何處顯示。這是瀏覽上下文(例如,選項卡、視窗或內聯框架)的名稱或關鍵字。如果指定了此屬性,則它將覆蓋元素的表單所有者的
target屬性。以下關鍵字具有特殊含義_self:將響應載入到與當前上下文相同的瀏覽上下文中。如果未指定該屬性,則此值為預設值。_blank:將響應載入到新的未命名瀏覽上下文中。_parent:將響應載入到當前上下文的父瀏覽上下文中。如果沒有父級,則此選項的行為與_self相同。_top:將響應載入到頂級瀏覽上下文中(即,當前上下文的祖先且沒有父級的瀏覽上下文)。如果沒有父級,則此選項的行為與_self相同。
使用x和y資料點
當您使用使用<input type="image">建立的按鈕提交表單時,瀏覽器會自動向伺服器提交兩個額外的數 據點——x和y。您可以在我們的X Y座標示例中看到這一點。
當您單擊影像以提交表單時,您將看到資料作為引數附加到URL中,例如?x=52&y=55。如果影像輸入具有name屬性,則請記住,指定的名稱會新增到每個屬性的前面,因此,如果name為position,則返回的座標將在URL中格式化為?position.x=52&position.y=55。當然,這也適用於所有其他屬性。
這些是滑鼠單擊以提交表單的影像的X和Y座標,其中(0,0)是影像的左上角,並且在沒有單擊影像的情況下提交時為預設值。當單擊影像的位置很重要時,可以使用這些座標,例如,您可能有一個地圖,單擊它時,會將單擊的座標傳送到伺服器。然後,伺服器端程式碼計算出單擊了哪個位置,並返回有關附近位置的資訊。
在上面的示例中,我們可以編寫伺服器端程式碼,根據提交的座標計算出單擊了哪個顏色,並統計人們投票選擇的喜歡的顏色。
調整影像的位置和縮放演算法
您可以使用object-position屬性調整影像在<input>元素框架內的定位,並使用object-fit屬性控制如何調整影像的大小以適合框架。這允許您使用width和height屬性為影像指定一個框架,以便在佈局中騰出空間,然後調整影像在該空間中的位置以及如何(或是否)縮放以佔用該空間。
示例
登入表單
以下示例顯示了與之前相同的按鈕,但包含在典型登入表單的上下文中。
HTML
<form>
<p>Login to your account</p>
<div>
<label for="userId">User ID</label>
<input type="text" id="userId" name="userId" />
</div>
<div>
<label for="pwd">Password</label>
<input type="password" id="pwd" name="pwd" />
</div>
<div>
<input
id="image"
type="image"
src="https://raw.githubusercontent.com/mdn/learning-area/master/html/forms/image-type-example/login.png"
alt="Login"
width="100" />
</div>
</form>
CSS
現在,一些簡單的CSS使基本元素更整齊地排列。
div {
margin-bottom: 10px;
}
label {
display: inline-block;
width: 70px;
text-align: right;
padding-right: 10px;
}
調整影像位置和縮放
在此示例中,我們調整了前面的示例,以騰出更多空間用於影像,然後使用object-fit和object-position調整實際影像的大小和位置。
HTML
<form>
<p>Login to your account</p>
<div>
<label for="userId">User ID</label>
<input type="text" id="userId" name="userId" />
</div>
<div>
<label for="pwd">Password</label>
<input type="password" id="pwd" name="pwd" />
</div>
<div>
<input
id="image"
type="image"
src="https://raw.githubusercontent.com/mdn/learning-area/master/html/forms/image-type-example/login.png"
alt="Login"
width="200"
height="100" />
</div>
</form>
CSS
div {
margin-bottom: 10px;
}
label {
display: inline-block;
width: 70px;
text-align: right;
padding-right: 10px;
}
#image {
object-position: right top;
object-fit: contain;
background-color: #ddd;
}
這裡,object-position配置為在元素的右上角繪製圖像,而object-fit設定為contain,這表示應以適合元素框內且不更改其縱橫比的最大尺寸繪製圖像。請注意,元素的可見灰色背景仍然在影像未覆蓋的區域可見。
技術摘要
| 值 | 無——不應指定value屬性。 |
| 事件 | 無。 |
| 支援的常用屬性 |
alt、src、width、height、formaction、formenctype、formmethod、formnovalidate、formtarget |
| IDL 屬性 | 無。 |
| DOM 介面 | |
| 方法 | 無。 |
| 隱式 ARIA 角色 | button |
規範
| 規範 |
|---|
| HTML 標準 # image-button-state-(type=image) |
瀏覽器相容性
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。
另請參閱
<input>和實現它的HTMLInputElement介面。- HTML
<img>元素 - 在
<input>元素的框架內定位和調整影像大小:object-position和object-fit - CSS 屬性的相容性