Saya memiliki formulir masuk dan ingin memeriksa apakah suatu fungsi dipanggil hanya jika pengguna gagal masuk, jika tidak fungsi itu tidak dipanggil. Saya ingin melakukan ini hanya menggunakan Jquery dengan memeriksa apakah ada elemen di halaman. Misalnya, jika mereka belum berhasil login, formulir login akan tetap ada di halaman tersebut. Jika mereka telah berhasil masuk, itu tidak akan muncul karena mereka akan diarahkan ke halaman beranda. Inilah kode saya sejauh ini:

    $(document).on("submit", "#myForm", function (e) {

           if ($('#myForm').length) {

               alert("hello");
               // Call Function 

           }
    });
}

$(document).ready(Login);

Saya mencoba menggunakan ($('#myForm').length) untuk melihat apakah formulir login masih ada di halaman dan, jika ya, saya akan memanggil fungsi yang ingin saya panggil. Namun masalahnya adalah ini disebut apa pun (diuji dengan alert).

Adakah yang bisa memberi tahu saya bagaimana saya bisa menunggu halaman dimuat setelah formulir dikirimkan sehingga hanya MAKA kode saya memeriksa untuk melihat apakah formulir login ada di halaman? Terima kasih!

1
Jordan1993 29 Oktober 2019, 17:26

1 menjawab

Jawaban Terbaik

Coba gunakan kode ini, cukup setel kunci bool di sessionStorage dan setel ke true saat dikirim, dan periksa pemuatan halaman jika nilai ini benar dan formulir masih ada ... di sini kode saya tidak tidak berfungsi karena di jsfiddle saya tidak memiliki akses ke sessionStorage, coba di proyek Anda.

$(document).ready(function(){
  const form = $('#my-form');
  const isTried = window.sessionStorage.getItem('triedToLogin') || false;
  if (isTried && form.length) {
    alert("hello");
  }
  
  if (!form.length){
    window.sessionStorage.setItem('triedToLogin', false);
  }
  
  form.on('submit', function(){
      window.sessionStorage.setItem('triedToLogin', true);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form id="my-form">
<input placeholder="login" type="text" name="login"/>
<input placeholder="password" type="password" name="password"/>
<button type="submit">login</button>
</form>
0
Ivan Karaman 29 Oktober 2019, 15:28