صفحه اصلی/ مقالات/ نمایش پسورد در جاوااسکریپت
برنامه نویسی

نمایش پسورد در جاوااسکریپت

فربد طاهری فرد
فربد طاهری فرد
نویسنده و مدرس
📅 1401/09/17 ⏱ 4 دقیقه مطالعه
نمایش پسورد در جاوااسکریپت

ابتدا یک فرم لاگین با ساختار html با class های بوتسترپ  ایجاد کردیم

 <form id="login">
     <div class="form-row">
          <h4 class="title text-center pb-۳">Login Form</h4>
          <div class="col-12">
               <div class="input-group mb-۳">
                    <div class="input-group-prepend">
                         <span class="input-group-text btn-toggle" id="basic-addon۱">
                              <i class="fas fa-user"></i>
                         </span>
                    </div>
                    <input name="username" type="text" class="input form-control" id="username"
                         placeholder="username" />
               </div>
          </div>
          <div class="col-12">
               <div class="input-group mb-۳">
                    <div class="input-group-prepend">
                         <span class="input-group-text btn-toggle" id="basic-addon۱">
                              <i class="fas fa-lock"></i>
                         </span>
                    </div>
                    <input name="password" type="password" class="input form-control" id="password"
                         placeholder="password" required="true" />
                    <div class="input-group-append">
                         <span class="input-group-text btn-toggle" onclick="password_show_hide();">
                              <i class="fas fa-eye" id="show_eye"></i>
                              <i class="fas fa-eye-slash d-none" id="hide_eye"></i>
                         </span>
                    </div>
               </div>
          </div>
          <div class="col-12 text-start">
               <button class="btn btn-primary" type="submit" name="signin">login</button>
          </div>
     </div>
</form> 

برای تگ input یک id در نظر گرفتیم که برابر با password هست

  <input name="password" type="password" class="input form-control" id="password" placeholder="password" required="true"/>  

 

یک تگ span گذاشتیم و برای این تگ یک رویداد onclick  تعریف شد و یک تابع یا function به اسم password_show_hide() ایجاد کردیم

  <span class="input-group-text btn-toggle" onclick="password_show_hide();">  

 

درون تگ span از دو آیکون استفاده کردیم با class های fas fa-eye و fas fa-eye-slash

  <i class="fas fa-eye" id="show_eye"></i> 
 <i class="fas fa-eye-slash d-none" id="hide_eye"></i>  

در مرحله اول میخوایم فقط ایکون fa-eye نمایش بده پس برای ایکون fa-eye-slash باید display برابر با none قرار بدیم .

برای نمایش آیکون ها از کتابخونه fontawesome  استفاده کردیم .

تو مرحله ی بعد برای هرکدوم از آیکون ها یک id درنظر گرفته شد.

  id="show_eye" id="hide_eye"  

بریم سراغ کدهای جاوااسکریپت

 function password_show_hide() {
     var password = document.getElementById("password");
     var show_eye = document.getElementById("show_eye");
     var hide_eye = document.getElementById("hide_eye");
     hide_eye.classList.remove("d-none");
     if (password.type === "password") {
          password.type = "text";
          show_eye.style.display = "none";
          hide_eye.style.display = "block";
     } else {
          password.type = "password";
          show_eye.style.display = "block";
          hide_eye.style.display = "none";
     }
}  

در ابتدا تابع یا function که در رویداد onclick به اسم password_show_hide() ایجاد کردیم را مینویسیم  تا بتوانیم به id  هایی که در فرم html تعریف کردیم از طریق متد getElementById در جاوااسکریپت دسترسی داشته باشیم.

  var password = document.getElementById("password"); 
 var show_eye = document.getElementById("show_eye"); 
 var hide_eye = document.getElementById("hide_eye");  

همونطور که گفتیم مرحله اول میخواستیم id  آیکون  fa-eye-slash  نمایش نده، پس باید به این شکل تعریف کنیم

 hide_eye.classList.remove("d-none"); 
hide_eye.classList.remove("d-none");  

به  hide_eye  ویژگی classList دادیم و از طریق متد remove باید display  رو برابر none  قرار دهیم.

حالا میخوایم زمانیکه  پسووردی وارد کردیم و روی ایکون کلیک شد ، هم پسوورد نمایش بده و هم ایکون تغییر کنه ،  پس اینجا یک شرطی گذاشتیم.

 if (password.type === "password") {
     password.type = "text";
     show_eye.style.display = "none";
     hide_eye.style.display = "block";
} else {
     password.type = "password";
     show_eye.style.display = "block";
     hide_eye.style.display = "none";
}  

گفتیم اگه password.type برابر بود با مقدار password شما password.type  رو برابر با text قرار بده یعنی type رو عوض کن و ایکون  show_eye باید display  برابر با none قرار بدیم تا نمایش نده  و حالا  ایکون hide_eye  باید display  برابر با block قرار داده شود تا نمایش بده و درغیر اینصورت password.type رو برابر با password قرار بده  و show_eye باید display برابر با block و hide_eye باید display برابر با none شود.

یعنی اگر یکبار روش کلیک شد type برابر با  text  شود و دوباره کلیک شد type برابر با password شود.

فربد طاهری فرد
فربد طاهری فرد
مدرس برنامه‌نویسی | بنیان‌گذار idejet
اینجا درباره برنامه‌نویسی، توسعه وب، هوش مصنوعی و فناوری‌های روز می‌نویسم. سعی می‌کنم تجربه‌ها و نکات کاربردی را به زبان ساده با شما به اشتراک بگذارم تا علاوه بر یادگیری مفاهیم، بتوانید از آن‌ها در پروژه‌های واقعی هم استفاده کنید.

نظرات (2)

برای ثبت نظر وارد حساب خود شوید.

م
مهدی طاهری
20 اسفند 1400
بینظر تشکر
فربد طاهری فرد
فربد طاهری فرد
4 سال پیش
خواهش میکنم مهدی جان