2016-06-09 98 views
2

按鈕類型與type="button"對比type="submit"有沒有區別?是否存在功能差異,還是僅僅是簡化代碼閱讀的描述性名稱?按鈕類型「按鈕」與「提交」

這與輸入不同嗎?

+1

@ j08691不是重複的,因爲其他問題是關於輸入,而我的關於按鈕 – akantoword

+1

對不起,錯誤的問題。重開。 – j08691

+1

[該規範詳細介紹了他們應該如何行動](https://www.w3.org/TR/html5/forms.html#attr-button-type) – zzzzBov

回答

4

一個類型爲「button」的按鈕不會提交表單,而是一個沒有type或type = submit(默認)的表單。 type = submit的按鈕與type = submit的輸入幾乎相同,但按鈕可以包含HTML內容。

+0

,所以發生了一些提交類型沒有發生常規的按鈕類型?我問這是因爲可訪問性要求我給一個按鈕一個提交類型,但我已經使用骨幹來聽按鈕併發出一個請求,所以我只是不想通過讓html做些事情來搞砸帶有提交類型按鈕的背景以及主幹提出請求 – akantoword

5

MDN

type
的類型的按鈕的。可能的值是:

  • 提交:按鈕的表單數據提交到服務器。 如果未指定屬性,或者屬性動態更改爲空值或無效值,則這是默認值。
  • 重置:該按鈕將所有控件重置爲其初始值。
  • 按鈕:該按鈕沒有默認行爲。它可以將客戶端腳本與元素的事件相關聯,這些事件在事件發生時觸發。

至於buttoninput之間的差:

  • button可以具有單獨的值作爲數據,而對於input數據和按鈕文本總是相同的:

    <input type="button" value="Button Text"> <!-- Form data will be "Button Text" --> 
    <button type="button" value="Data">Button Text</button> 
    
  • A button可以有HTML內容(例如圖片),而input只能有文字。

  • A button可能比較容易區分CSS中其他input控件(如文本字段)。注意向後瀏覽器的兼容性。

    input { 
    
    } 
    button { /* Always works */ 
    
    } 
    input[type=button] { /* Not supported in IE < 7 */ 
    
    } 
    
+0

是否有,我可以禁用提交按鈕發送數據到服務器?我已經有骨幹聽衆的按鈕,將使服務器發佈,但只需要按鈕類型提交的可訪問性。 – akantoword

+0

@jlei你可以在'onclick'事件中返回'false'。 – Midas

+0

不會讓我的骨幹聽衆陷入困境嗎?或者他們會分開兩件事? – akantoword

0

<button type="button"></button>按鈕將無法提交表單 - 它們默認情況下不執行任何操作。 Button不會自行提交表單。它是一個簡單的按鈕,用於通過javascript執行某些操作,而Submit是一種按鈕,默認情況下會在用戶單擊提交按鈕時提交表單。