show-password

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

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

 


<form id="login"> 
   <div class="form-row"> 
      <h۴ class="title text-center pb-۳">Login Form</h۴> 
      <div class="col-۱۲"> 
        <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-۱۲"> 
         <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-۱۲ 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 شود.

2 سال پیش
برای ثبت نظر لطفا وارد سایت شوید.