<input type="image">

型別為image<input>元素用於建立圖形提交按鈕,即採用影像而非文字形式的提交按鈕。

試一試

<input type="image">元素不接受value屬性。要顯示的影像的路徑在src屬性中指定。

其他屬性

除了所有<input>元素共享的屬性外,image按鈕輸入還支援以下屬性。

alt

如果無法顯示影像(由於錯誤、無法或配置為不顯示影像的使用者代理,或者使用者正在使用螢幕閱讀器),則alt屬性提供一個備用字串用作按鈕的標籤。如果提供,它必須是非空字串,適合用作按鈕的標籤。

例如,如果您有一個顯示帶有圖示和/或影像文字“立即登入”的影像的圖形按鈕,您還應該將alt屬性設定為類似立即登入的內容。

注意:雖然alt屬性在技術上是可選的,但您應始終包含一個以最大限度地提高內容的可用性。

在功能上,<input type="image">元素的alt屬性的工作原理與alt屬性在<img>元素上的工作原理相同。

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

透過以formactionaction屬性給出的 URL 開頭,附加問號(“?”)字元,然後附加表單資料(如formenctype或表單的enctype屬性所述進行編碼)來構建 URL。然後,使用 HTTP get請求將此 URL 傳送到伺服器。此方法適用於僅包含ASCII字元且沒有副作用的簡單表單。這是預設值。

post

表單資料包含在傳送到由formactionaction屬性給出的 URL 的請求的主體中,使用 HTTP post請求。此方法支援複雜資料和檔案附件。

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

如果指定了usemap,則它必須是影像對映元素<map>的名稱,該元素定義要與影像一起使用的影像對映。此用法已過時;當您想要使用影像對映時,應切換到使用<img>元素。

使用影像輸入

<input type="image">元素是一個替換元素(其內容不是由CSS層生成或直接管理的元素),其行為與常規<img>元素非常相似,但具有提交按鈕的功能。

基本的影像輸入功能

讓我們來看一個包含所有基本功能的基本示例(這些功能與<img>元素上的功能完全相同)。

html
<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" />
  • src屬性用於指定要顯示在按鈕中的影像的路徑。
  • alt屬性為影像提供替代文字,以便螢幕閱讀器使用者可以更好地瞭解按鈕的用途。如果由於任何原因無法顯示影像(例如,路徑拼寫錯誤),它也會顯示。如果可能,請使用與使用標準提交按鈕時使用的標籤匹配的文字。
  • widthheight屬性用於指定應以畫素為單位顯示影像的寬度和高度。按鈕的大小與影像相同;如果您需要按鈕的點選區域大於影像,則需要使用CSS(例如padding)。此外,如果您只指定一個維度,則另一個維度會自動調整,以便影像保持其原始縱橫比

覆蓋預設表單行為

<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">建立的按鈕提交表單時,瀏覽器會自動向伺服器提交兩個額外的數 據點——xy。您可以在我們的X Y座標示例中看到這一點。

當您單擊影像以提交表單時,您將看到資料作為引數附加到URL中,例如?x=52&y=55。如果影像輸入具有name屬性,則請記住,指定的名稱會新增到每個屬性的前面,因此,如果nameposition,則返回的座標將在URL中格式化為?position.x=52&position.y=55。當然,這也適用於所有其他屬性。

這些是滑鼠單擊以提交表單的影像的X和Y座標,其中(0,0)是影像的左上角,並且在沒有單擊影像的情況下提交時為預設值。當單擊影像的位置很重要時,可以使用這些座標,例如,您可能有一個地圖,單擊它時,會將單擊的座標傳送到伺服器。然後,伺服器端程式碼計算出單擊了哪個位置,並返回有關附近位置的資訊。

在上面的示例中,我們可以編寫伺服器端程式碼,根據提交的座標計算出單擊了哪個顏色,並統計人們投票選擇的喜歡的顏色。

調整影像的位置和縮放演算法

您可以使用object-position屬性調整影像在<input>元素框架內的定位,並使用object-fit屬性控制如何調整影像的大小以適合框架。這允許您使用widthheight屬性為影像指定一個框架,以便在佈局中騰出空間,然後調整影像在該空間中的位置以及如何(或是否)縮放以佔用該空間。

示例

登入表單

以下示例顯示了與之前相同的按鈕,但包含在典型登入表單的上下文中。

HTML

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使基本元素更整齊地排列。

css
div {
  margin-bottom: 10px;
}

label {
  display: inline-block;
  width: 70px;
  text-align: right;
  padding-right: 10px;
}

調整影像位置和縮放

在此示例中,我們調整了前面的示例,以騰出更多空間用於影像,然後使用object-fitobject-position調整實際影像的大小和位置。

HTML

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

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屬性。
事件 無。
支援的常用屬性 altsrcwidthheightformactionformenctypeformmethodformnovalidateformtarget
IDL 屬性 無。
DOM 介面

HTMLInputElement

方法 無。
隱式 ARIA 角色 button

規範

規範
HTML 標準
# image-button-state-(type=image)

瀏覽器相容性

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

另請參閱