Di Rails saya, saya menggunakan alat untuk otentikasi, saya ingin menambahkan tombol di dekat bidang kata sandi di klik pengguna mana yang dapat melihat kata sandi apa yang mereka ketikkan.

Saya mencoba menggunakan javascript untuk ini, menambahkan kotak centang dan memberinya fungsi onclcick dalam fungsi jika pengguna mengklik tombol, jenis kata sandi mendapat perubahan pada teks dan sebaliknya.

Adalah sesuatu yang salah di sini.

<div class="form-group">
        <div class="input-group" style="z-index: 0;">
            <span class="input-group-addon"><i class="fa fa-lock"></i></span>
            <%= f.password_field :password, class: 'form-control password', autocomplete: "current-password", placeholder: "Your Password" %>
            <input type="checkbox" class="eye_icon" onclick="myFunction()">Show Password
        </div>
    </div>




<script>
$(".eye_icon").on('click',myFunction() {
    if ($(".password").attr('type') === 'password') {
        $(".password").attr('type', 'text');
    } else {
        $(".password").attr('type', 'password');
    }
});
</script>
1
peter 6 Agustus 2019, 18:23

1 menjawab

Jawaban Terbaik

Saya pikir JS Anda adalah masalahnya, khususnya menggunakan myFunction di sini, seharusnya function. Saya menduga jika Anda melihat concole dengan JS Anda saat ini, Anda mendapatkan kesalahan Uncaught SyntaxError: missing ) after argument list yang seharusnya hilang setelah Anda membuat perubahan pada kode saya di bawah ini. Segala sesuatu yang lain tampak bagus.

$(".eye_icon").on('click',function() {
  if ($(".password").attr('type') === 'password') {
      $(".password").attr('type', 'text');
  } else {
      $(".password").attr('type', 'password');
  }
});

Juga, fungsi klik yang Anda tambahkan ke HTML harus keluar. Perhatikan bagaimana fungsi itu disebut myFunction tetapi Anda tidak membuat fungsi yang disebut itu. Saya kira JS sedikit baru. Jadi ubah HTML agar sesuai dengan baris di bawah ini dan Anda harus melakukannya dengan baik.

<input type="checkbox" class="eye_icon">Show Password
0
Rockwell Rice 6 Agustus 2019, 16:19