주니어 기초 코딩공부/JSP 기초

[jsp] 로그인시 비밀번호 표시하는 로직 완벽정리

jju_developer 2024. 7. 2. 22:33
728x90

 

안녕하세요 jju_developer입니다.

 

오늘도 안녕하십니까?

 

로그인 하실때 비밀번호 안보여서 답답하셨다구요?

 

아주 쉽고 간단하게 변경해드리겠습니다...!

 

이번 포스트에서는 비밀번호 입력란 옆에 눈 아이콘을 추가하여,

클릭 시 비밀번호를 표시하거나 숨기는 기능을 구현하는 방법을 단계별로 설명드리겠습니다.

 

이 예제는 JSP 페이지에서 jQuery를 사용하여 구현됩니다.

 

1. CSS 및 Font Awesome 아이콘 추가


먼저, Font Awesome 아이콘을 사용하여 눈 아이콘을 추가합니다. 그리고 아이콘의 위치를 조정하기 위해 CSS 스타일을 작성합니다.

<head>
   <!-- 비밀번호 보기 css -->
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">

   <!-- 비밀번호 눈표시 -->
   <style>
       .input-group.password {
           position: relative;
       }
       
       .input-group.password .eyes {
           position: absolute;
           top: 0;
           bottom: 0;
           right: 10px;
           margin: auto;
           height: 30px;
           font-size: 22px;
           cursor: pointer;
           display: flex;
           align-items: center;
       }
   </style>
</head>

 

 

2. 비밀번호 입력 필드 및 눈 아이콘 추가

 

이제 HTML 부분에서 비밀번호 입력 필드와 눈 아이콘을 추가합니다.

 input-group 클래스를 사용하여 비밀번호 입력 필드와 아이콘을 한 줄에 배치합니다.

<div class="input-group mb-4 password">
    <input type="password" class="form-control login" placeholder="Password" id="passwd">
    <div class="eyes">
        <i class="fa fa-eye fa-lg"></i>
    </div>
</div>

 

 

3. JavaScript로 비밀번호 표시/숨기기 기능 구현


다음으로, jQuery를 사용하여 눈 아이콘 클릭 시 비밀번호를 표시하거나 숨기는 기능을 구현합니다. 

이 기능은 click 이벤트를 통해 동작하며, toggleClass 메서드를 사용하여 active 클래스를 토글합니다.

toggleClass('active')는 jQuery에서 제공하는 메서드로, 지정한 클래스(active)를 토글합니다. 

즉, 해당 클래스가 요소에 없으면 추가하고, 있으면 제거합니다.

 

$(function(){
    // 눈표시 클릭 시 패스워드 보이기
    $('.eyes').on('click', function(){
        $(this).toggleClass('active');
        
        if ($(this).hasClass('active')) {
            $(this).find('.fa-eye').attr('class', "fa fa-eye-slash fa-lg").parents('.input-group').find('#passwd').attr('type', "text");
        } else {
            $(this).find('.fa-eye-slash').attr('class', "fa fa-eye fa-lg").parents('.input-group').find('#passwd').attr('type', 'password');
        }
    });
});

 

 

JavaScript 동작 설명

$('.eyes').on('click', function(){ ... }): 눈 아이콘을 클릭했을 때 실행될 함수를 정의합니다.


$(this).toggleClass('active');: 클릭된 아이콘에 active 클래스를 토글합니다. 

이 클래스가 없으면 추가하고, 있으면 제거합니다.

 

if ($(this).hasClass('active')) { ... } else { ... }: 

active 클래스가 있는지 확인합니다.


$(this).find('.fa-eye').attr('class', "fa fa-eye-slash fa-lg"): 

눈 아이콘을 눈 감은 아이콘으로 변경합니다.


parents('.input-group').find('#passwd').attr('type', "text"): 

비밀번호 입력 필드의 타입을 text로 변경하여 비밀번호를 표시합니다.


$(this).find('.fa-eye-slash').attr('class', "fa fa-eye fa-lg"): 

눈 감은 아이콘을 다시 눈 아이콘으로 변경합니다.


parents('.input-group').find('#passwd').attr('type', 'password'): 

비밀번호 입력 필드의 타입을 password로 변경하여 비밀번호를 숨깁니다.

 

동영상으로 확인해보실까요~~~?

비밀번호 눈 표시 동영상

비가 많이 오네요~

감기 조심하시고 즐거운 코딩되세요!

728x90