2017-01-27 1 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> 

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

対最初のものはtype属性が指定されていないためtype=submitであると仮定されます。


あなたは<form>要素にされていない場合、それは同じくらい重要ではありませんので、ボタンは、提出には何もありません。 :)

セマンティクスは、通常、アプリケーションの存続期間中のある時点で重要になるため、typeを指定することをお勧めします。


[type=button]か何かを指定するスタイリングルールがあるかどう関連している可能性が唯一の他の理由があります。しかし、これはお勧めできません。

1

また、<button type="submit">もあります。クリックするとフォームが送信されます。

したがって、ajaxを使用してPOSTを実行する場合は、<button type="button">を使用するのがベストです。ボタンをクリックしたときにフォームを送信しないようにします。

1

デフォルトのボタンタイプは、実際にはsubmitです。これは、ポストオプションがなくてはならないが、クリック可能なオブジェクトであることを明確にしている。

2

<button>のデフォルト値はtype = "submit"です。つまり、フォーム要素内にあればフォームを送信しようとします。 はクリックイベントをバインドして何らかのアクションを実行できます。

<button type="button">は、通常のボタンであり、をクリックすると、クリックイベントをバインドして何らかの処理を行う必要があることを意味します。

4

ボタンのデフォルトのタイプは「送信」です。 MDNはそれについて私が見る限りそれについて話しませんが、それはhtml5 specificationで利用できます。

欠落値の既定値は送信ボタンの状態です。

したがって、タイプを「ボタン」に設定すると、フォームを送信する際のデフォルトの動作が無効になるため、preventDefaultを使用してJavaScriptで処理する必要はありません。

関連する問題