<button type="submit">
컨트롤이란
사용자가 웹 페이지와 상호작용할 수 있도록 하는 요소들을 의미합니다.
<input>
, <textarea>
, <select>
등 사용자가 데이터를 입력하고, 선택하고, 제출하는 등의 작업을 할 수 있는 요소들이 해당됩니다.
<form action="submit_url">
<label for="user-name">이름</label>
<input type="text" id="user-name" name="user-name">
<button type="submit">제출</button>
</form>
<button type="submit">
의 암시적인 role
속성의 값은 button
입니다.
관련 속성 사용하기
<button type="submit">
과 관련된 속성에 대해 알아보겠습니다.
disabled
속성
버튼을 비활성시키려면 disabled
속성을 사용하세요. 비활성화된 버튼은 클릭을 해도 그 고유기능이 비활성화되어 아무런 작동도 하지 않습니다.
이 속성은 부울 속성(boolean attribute)입니다. 값을 별도로 작성하지 않고 속성만 작성합니다.
<form action="submit_url">
<label for="user-name">이름</label>
<input type="text" id="user-name" name="user-name">
<button type="submit" disabled>제출</button>
</form>
참고사항
<button type="submit">
은
<input type="submit">
과 동일한 기능을 수행합니다.
<button>
태그는 닫는 태그(</button>
)가 있어 하위 콘텐츠를 가질 수 있습니다.
하위 콘텐츠를 가질 수 있기 때문에 레이블에 HTML이나 이미지를 포함할 수 있어서 스타일적으로 더 많은 것을 할 수 있습니다.
<style>
button {
color: inherit;
text-decoration: none;
padding: 0.5em 1em;
background-color: #fff;
border: 1px solid #777;
border-radius: 0.5em;
display: inline-flex;
align-items: center;
}
/* 닫는 태그가 없는 빈 요소인 input은
::before나 ::after를 사용할 수 없습니다. */
button::after {
content: "";
display: inline-flex;
width: 0.5em;
height: 0.5em;
border-left: 1px solid black;
border-bottom: 1px solid black;
transform: rotateZ(225deg);
margin-left: 0.2em;
}
</style>
<button type="submit">로그인하기</button>
주의할 점
<form action="/submit" method="post">
<label for="name">이름:</label>
<input type="text" id="name" name="name">
<!-- type이 명시되지 않아 기본값인 submit이 적용됨 -->
<button>클릭하세요</button>
</form>
양식을 제출할 의도가 없는 버튼이라면 반드시 type="button"
으로 설정해야 예상치 못한 양식 제출을 막을 수 있습니다.
<form action="/submit" method="post">
<label for="name">이름:</label>
<input type="text" id="name" name="name">
<!-- 의도적으로 폼 제출을 막고 JavaScript 동작만 수행 -->
<button type="button" onclick="alert('버튼이 클릭되었습니다!')">클릭하세요</button>
</form>
브라우저 호환성
태그와 관련 속성 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
<button>
|
1 | 12 | 1 | 4 |
type
|
1 | 12 | 1 | 4 |
명세서
명세서 사양 | |
---|---|
type
|
HTML Standard #attr-button-type |