<form action="submit_url">
    <label for="user-name">이름</label>
    <input type="text" id="user-name" name="user-name">
    <button type="submit">제출</button>
</form>
브라우저에서 실제 표시된 모습
<form action="submit_url">
    <label for="user-name">이름</label>
    <input type="text" id="user-name" name="user-name">
    <button type="submit" disabled>제출</button>
</form>
브라우저에서 실제 표시된 모습
<h3>유효성 검사를 진행함</h3>
<p>올바른 형식의 URL을 입력했는지 검사</p>
<form>
    <label for="user-url">홈페이지 주소</label>
    <input type="url" id="user-url" name="user-url">
    <button type="submit">제출</button>
</form>
<h3>유효성 검사를 진행하지 않음</h3>
<p>올바른 형식의 URL을 입력했는지 검사를 진행하지 않음</p>
<form>
    <label for="user-url-1">홈페이지 주소</label>
    <input type="url" id="user-url-1" name="user-url-1">
    <button type="submit" formnovalidate>제출</button>
</form>
브라우저에서 실제 표시된 모습 URL을 입력하고 유효성 검사가 진행되는지 실제로 테스트 해보세요!
주의! URL을 입력하지 않으면 유효성 검사 없이 양식이 제출됩니다.
<h3>required 속성 검사를 진행함</h3>
<p>required 속성이 있는지 검사</p>
<form>
    <label for="user-name">이름</label>
    <input type="text" id="user-name" name="user-name" required>
    <button type="submit">제출</button>
</form>
<h3>required 속성 검사를 진행하지 않음</h3>
<p>required 속성이 있는지 검사를 진행하지 않음</p>
<form>
    <label for="user-name-1">이름</label>
    <input type="text" id="user-name-1" name="user-name-1" required>
    <button type="submit" formnovalidate>제출</button>
</form>
브라우저에서 실제 표시된 모습 required 속성 검사가 진행되는지 실제로 테스트 해보세요!
<form action="submit_url" method="post">
    <p>
        <label for="user-name">이름</label>
        <input type="text" id="user-name" name="user-name">
    </p>
    <p>
        <!-- 각 버튼은 다른 값을 전송함 -->
        <button type="submit" name="action" value="save">저장</button>
        <button type="submit" name="action" value="delete">삭제</button>
    </p>
</form>
<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>
<form action="/submit" method="post">
    <label for="name">이름:</label>
    <input type="text" id="name" name="name">
    
    <!-- 의도적으로 폼 제출을 막고 JavaScript 동작만 수행 -->
    <button type="button" onclick="alert('버튼이 클릭되었습니다!')">클릭하세요</button>
</form>