본문 바로가기

체크박스가 여러 개인 경우 하나라도 체크되어 있는지 확인하고 submit 하는 html 예제는 다음과 같습니다.

예제코드

<!-- html 코드 -->
<form onsubmit="return validateForm()">
  <div>
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required />
  </div>
  <div>
    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required />
  </div>
  <div>
    <p>Hobby:</p>
    <label for="reading"><input type="checkbox" id="reading" name="hobby[]" value="reading" />Reading</label>
    <label for="music"><input type="checkbox" id="music" name="hobby[]" value="music" />Music</label>
    <label for="sports"><input type="checkbox" id="sports" name="hobby[]" value="sports" />Sports</label>
  </div>
  <div>
    <button type="submit">Submit</button>
  </div>
</form>

<!-- javascript 코드 -->
<script>
  // 폼 제출 전에 체크박스 검사하는 함수
  function validateForm() {
    // 체크박스 요소의 NodeList 가져오기
    var checkboxes = document.querySelectorAll("input[name='hobby[]']");
    // 체크된 체크박스가 있는지 확인하기 위한 변수
    var checked = false;
    // 각 체크박스 요소에 대해 반복하면서 checked 속성 확인
    checkboxes.forEach(function(checkbox) {
      if (checkbox.checked) {
        // 체크된 체크박스가 있으면 checked 변수를 true로 변경
        checked = true;
      }
    });
    // 체크된 체크박스가 없으면 경고 메시지 표시하고 폼 제출 취소
    if (!checked) {
      alert("Please check at least one checkbox.");
      return false;
    }
  }
</script>

JQuery 를 사용하는 방식

jquery 코드로도 유사한 예제가 가능합니다.

예제코드

<!-- html 코드 -->
<form>
  <div>
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required />
  </div>
  <div>
    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required />
  </div>
  <div>
    <p>Hobby:</p>
    <label for="reading"><input type="checkbox" id="reading" name="hobby[]" value="reading" />Reading</label>
    <label for="music"><input type="checkbox" id="music" name="hobby[]" value="music" />Music</label>
    <label for="sports"><input type="checkbox" id="sports" name="hobby[]" value="sports" />Sports</label>
  </div>
  <div>
    <button type="submit">Submit</button>
  </div>
</form>

<!-- javascript 코드 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
  // 문서가 로드될 때 실행할 함수
  $(document).ready(function() {
    // 폼 제출 이벤트에 대한 핸들러
    $("form").on("submit", function(e) {
      // 체크박스 요소 선택
      var checkboxes = $("input[type='checkbox']");
      // 체크된 체크박스가 있는지 확인
      if (checkboxes.is(":checked")) {
        // 체크된 체크박스가 있으면 폼 제출
        $("form").submit();
      } else {
        // 체크된 체크박스가 없으면 경고 메시지 표시하고 폼 제출 취소
        alert("Please check at least one checkbox.");
        e.preventDefault();
      }
    });
  });
</script>

체크박스

 

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.