Blokowanie przycisku logowania po naciśnięciu - submit - jsp

0

Mam mały kłopot, chce zrobić aby po kliknięciu na przycisk logowania on się blokował aby nie można było go ponownie klikać.

<tr class="formLoginWindowContent">
<td align="center"> 
<input class="formGrayButton" id="submit" style="font-weight: bold;" type="submit" name="submit" value="Logowanie">
</td>
</tr>

Niestety na przycisku typu submit poniższe rozwiązanie nie działa, przycisk sie blokuje ale juz zadana kacja nie jest wykonywana

onclick="this.disabled=true";

0

Wykorzystaj atrybut disabled lub wywołaj return false; w zdarzeniu onsubmit formularza.
A najlepiej po prostu ukrywaj formę, której nie ma sensu użytkować.

0

Twoje rozwiązanie nie działa, dlatego że używasz atrybutu onclick. Guzik type=submit ma domyślnie onclick wywołanie przesłania formularza (czyli zdarzenia submit). Jeżeli użyjesz atrybutu, to faktycznie, guzik po kliknięciu będzie disabled, ale nadpiszesz domyślne jego działanie, przez co formularz się nie wyśle.

Dlatego polecam nie używać html'owych atrybutów on*, tylko po bożemu addEventListener:

const submitBtn = document.getElementById("submit");
if (submitBtn) {
    submitBtn.addEventListener("click", function (e) {
        e.target.disabled = true;
    });
}

// lub bardziej zwięźle, bez if'a
// submitBtn && submitBtn.addEventListener("click", function(e) {
//     e.target.disabled = true;
// });

Dzięki temu dodasz, a nie nadpiszesz kolejną obsługę podczas kliknięcia.

0
<script language="JavaScript">

const submitBtn = document.getElementById("submit");
if (submitBtn) {
    submitBtn.addEventListener("click", function (e) {
        e.target.disabled = true;
    });
}

</script>

wrzuciłem skrypt do jsp ale coś nie rusza ?

0

Różnie próbuje, z tą stała const okno logownaia się nie pojawia

Dodałem w ten sposób ale nie działa

<script language="JavaScript">

    document.getElementById("submit").addEventListener("click", function (e) {
        e.target.disabled = true;
    });

</script>
0

document.getElementById("submit") zwraca Ci null, więc prawdopodobnie Twój input ma inny id.

0
(function() {
  var form = document.getElementById("form");
  if (form) {
    on(form, 'click', '.submit', function(e) {
      e.target.disabled = true;
    });
  }

  function on(parent, event, selector, handler) {
    var observer = new MutationObserver(function(mutations) {
      var elements = Array.prototype.slice.call(parent.querySelectorAll(selector));
      if (!elements) {
        return;
      }

      elements.forEach(function(element) {
        element.addEventListener(event, handler);
      });
    });

    observer.observe(parent, {
      childList: true
    });
  }
})();

JSFiddle

1 użytkowników online, w tym zalogowanych: 0, gości: 1