2017-01-27 74 views
4

<button type="button>與簡單的<button>有什麼不同?空白或缺少type屬性? MDN和HTML5規範說type=button是用於觸發自定義JavaScript的按鈕,但是這不是<button>默認情況下的功能嗎?<button type =「button」>有什麼意義?

回答

12

是的,有一個原因 - 但(通常)只有當你在<form>元素。

如果你在一個表單元素中包含一個按鈕,而沒有指定它只是一個普通的按鈕,它默認爲一個提交按鈕。

<form> 
    <button>I will submit the form when clicked!</button> 
</form> 

VS

<form> 
    <button type='button'>I won't!</button> 
</form> 

第一個被假定爲type=submit因爲尚未指定一個type屬性。


如果你是<form>元素不,按鈕不會有什麼提交,所以它並不重要一樣多。 :)

雖然語義通常在應用程序的生命週期中的某個時刻變得很重要,但是,養成指定type的習慣是個好主意。


唯一的其他原因,可能是相關的是,如果有一個造型規則,指定[type=button]什麼的。不過這不推薦。

1

還有<button type="submit">點擊時提交表單。

所以,如果你想使用AJAX執行POST,那麼最好使用<button type="button">,這樣當點擊按鈕時它不會提交表單。

1

默認按鈕類型實際上是submit。這說明應該沒有帖子選項,但只是一個可點擊的對象。

2

<button>默認爲type = "submit"這意味着如果它在一個表單元素中,它會嘗試提交表單。您可以將您的點擊事件綁定到它並執行一些操作。

<button type="button">意味着它是一個正常的按鈕,你必須點擊事件綁定到它做一些動作。

4

按鈕的默認類型是「submit」。就我所見,MDN不會談論它,但它可在html5 specification中獲得。

缺失值的默認值是Submit Button狀態。

因此,將類型設置爲「按鈕」會禁用提交表單的默認行爲,因此您不需要使用preventDefault來在JavaScript中處理它。

相關問題