Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML novalidate 속성 – 폼 유효성 검사 비활성화하기

novalidate 속성이란?

HTML의 novalidate 속성은 폼(form)을 제출할 때 브라우저가 입력 데이터에 대한 유효성 검사를 수행하지 않도록 지정하는 부울(Boolean) 속성입니다. 일반적으로 required, pattern, type="email" 같은 유효성 검사 관련 속성이 설정된 경우, 브라우저는 폼 제출 시 자동으로 값을 검증하고 오류가 있으면 제출을 막습니다. 하지만 novalidate 속성을 <form> 요소에 추가하면 이러한 기본 검증 과정을 건너뛰고 폼이 그대로 제출됩니다.

서버 측에서 직접 유효성 검사를 처리하거나, JavaScript로 커스텀 검증 로직을 구현하는 경우 이 속성이 유용하게 활용됩니다.

문법

novalidate 속성의 기본 문법은 다음과 같습니다.

<form novalidate></form>

속성값 없이 속성 이름만 작성해도 되며, 필요에 따라 JavaScript의 setAttribute() 메서드를 사용해 동적으로 설정할 수도 있습니다.

예제

아래 예제는 텍스트 입력 필드에 required 속성이 적용된 폼에서, 버튼 클릭 시 novalidate 속성을 동적으로 추가하는 방법을 보여줍니다.

<!DOCTYPE html>
<html>
<style>
    body {
        color: #000;
        height: 100vh;
        background: linear-gradient(62deg, #FBAB7E 0%, #F7CE68 100%) no-repeat;
        text-align: center;
    }
    input[type='text'] {
        width: 300px;
        padding: 8px 16px;
        border: 2px solid #fff;
        background: transparent;
        border-radius: 20px;
        display: block;
        margin: 1rem auto;
        outline: none;
    }
    .btn {
        background: #db133a;
        border: none;
        height: 2rem;
        border-radius: 20px;
        width: 330px;
        display: block;
        color: #fff;
        outline: none;
        cursor: pointer;
        margin: 1rem auto;
    }
    ::placeholder {
        color: #000;
    }
</style>
<body>
<h1>HTML novalidate attribute Demo</h1>
<form>
<input type="text" placeholder="Enter your name" required>
<input type="submit" value="Submit" class="btn" onclick='check()'>
</form>
<button type='button' class="btn" onclick="set()">Set No Validation</button>
<div class="show"></div>
<script>
    function set() {
        document.querySelector('form').setAttribute('novalidate', 'true');
    }
</script>
</body>
</html>

실행 결과

HTML novalidate 속성 – 폼 유효성 검사 비활성화하기

텍스트 필드에 아무 값도 입력하지 않은 상태에서 "Submit" 버튼을 클릭하면, required 속성에 의해 다음과 같은 경고 메시지가 표시되며 폼 제출이 차단됩니다.

HTML novalidate 속성 – 폼 유효성 검사 비활성화하기

이번에는 "Set No Validation" 버튼을 클릭하여 폼 요소에 novalidate 속성을 설정한 뒤, 다시 이름을 입력하지 않고 폼을 제출해 보세요. 이번에는 경고 메시지 없이 폼이 정상적으로 제출되는 것을 확인할 수 있습니다.

HTML novalidate 속성 – 폼 유효성 검사 비활성화하기

정리

novalidate 속성은 브라우저의 기본 폼 유효성 검사를 비활성화하는 간단하면서도 강력한 도구입니다. 다만 클라이언트 측 검증을 건너뛰더라도 서버 측에서 반드시 데이터를 검증해야 한다는 점을 기억하세요. 클라이언트 검증은 사용자 편의를 위한 것이며, 보안과 데이터 무결성은 서버 측 검증으로 확보해야 합니다.