본문 바로가기
프로그램

jQuery의 focus() / blur() 이벤트를 활용한 실용적인 예제들

by 다온다올과함께 2024. 11. 22.

 

 

 

다음은 jQuery의 focus()와 blur() 이벤트를 활용한 실용적인 예제들입니다. 이 이벤트들은 주로 폼 요소에서 사용되며 사용자 경험을 개선하는 데 유용합니다.

 

 

 

 

 

1. 입력 필드 강조 및 해제

사용자가 입력 필드에 포커스할 때 시각적으로 강조 표시하고 포커스를 벗어나면 기본 스타일로 복구합니다.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Focus / Blur Example</title>
  <style>
    .highlight {
      border: 2px solid #4CAF50;
      background-color: #f9fff9;
    }
    input {
      border: 1px solid #ccc;
      padding: 10px;
      margin: 5px 0;
    }
  </style>
</head>
<body>
  <h3>Focus / Blur Highlight</h3>
  <input type="text" placeholder="Enter your name">
  <input type="email" placeholder="Enter your email">
  <input type="password" placeholder="Enter your password">

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $('input').focus(function() {
      $(this).addClass('highlight');
    }).blur(function() {
      $(this).removeClass('highlight');
    });
  </script>
</body>
</html>

 

 

 

2. 폼 유효성 검사 표시

사용자가 입력 필드를 벗어났을 때(blur), 입력값의 유효성을 확인하고 메시지를 표시합니다.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Validation Example</title>
  <style>
    .error {
      color: red;
      font-size: 12px;
    }
    .success {
      color: green;
      font-size: 12px;
    }
  </style>
</head>
<body>
  <h3>Validation Example</h3>
  <form>
    <label for="email">Email:</label>
    <input type="email" id="email" placeholder="Enter your email">
    <p id="email-feedback" class="error"></p>
  </form>

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $('#email').blur(function() {
      const email = $(this).val();
      const feedback = $('#email-feedback');
      if (email === '') {
        feedback.text('Email cannot be empty.');
      } else if (!/\S+@\S+\.\S+/.test(email)) {
        feedback.text('Please enter a valid email address.');
      } else {
        feedback.removeClass('error').addClass('success').text('Email is valid.');
      }
    });
  </script>
</body>
</html>

 

 

 

3. 버튼 활성화 조건

폼 필드가 모두 입력되었을 때만 버튼을 활성화합니다. 각 입력 필드를 blur 이벤트로 확인합니다.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Button Enable</title>
  <style>
    button {
      background-color: #ccc;
      color: white;
      padding: 10px 15px;
      border: none;
      cursor: not-allowed;
    }
    button.enabled {
      background-color: #4CAF50;
      cursor: pointer;
    }
  </style>
</head>
<body>
  <h3>Enable Button on All Fields Completion</h3>
  <input type="text" id="name" placeholder="Enter your name">
  <input type="email" id="email" placeholder="Enter your email">
  <button id="submit" disabled>Submit</button>

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    function checkFields() {
      const allFilled = $('#name').val().trim() !== '' && $('#email').val().trim() !== '';
      $('#submit').prop('disabled', !allFilled).toggleClass('enabled', allFilled);
    }

    $('input').blur(checkFields);
  </script>
</body>
</html>

 

 

4. 힌트 텍스트 표시

입력 필드가 비어 있는 상태에서 포커스가 해제되면 힌트를 표시합니다.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Hint Example</title>
  <style>
    .hint {
      color: gray;
      font-size: 12px;
    }
  </style>
</head>
<body>
  <h3>Hint Example</h3>
  <input type="text" id="username" placeholder="Enter your username">
  <p id="hint" class="hint">Hint: Your username should be 5-15 characters.</p>

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $('#username').focus(function() {
      $('#hint').show();
    }).blur(function() {
      if ($(this).val().trim() === '') {
        $('#hint').show();
      } else {
        $('#hint').hide();
      }
    });
  </script>
</body>
</html>

 

 

 

이러한 예제들은 다양한 상황에서 focus()와 blur() 이벤트를 실용적으로 사용할 수 있도록 도와줍니다. 필요에 따라 더 복잡한 로직을 추가하여 확장 가능합니다.

 

 

 

 

 

#jquery #focus() #blur() #event #입력필드강조및해제 #폼유효성검사표시 #버튼활성화조건 #힌트텍스트표시

 

 

반응형

댓글