Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ JavaScript _ jQuery i funkcja click

Napisany przez: esiek 29.01.2018, 22:24:39

W uproszczeniu kod wygląda tak

  1. $('#sendForm').click(function(event){
  2.  
  3. // JAKAŚ TAM WALIDACJA FORMULARZA
  4. if(bledy>0)
  5. {
  6. $('html, body').animate({
  7. scrollTop: $("#form").offset().top
  8. }, 300);
  9. return false;
  10. }
  11. else
  12. {
  13. $('#sendForm').css('display', 'none'); // ta część kodu się nie wykonuje
  14. $('#waitSend').css('display', 'block'); // ta część kodu się nie wykonuje
  15. return true;
  16. }
  17.  
  18. });


Po kliknięciu "wyślij formularz" jeżeli w formularzu są błędy wysylanie submit zostaje zatrzymane przez return false;. Niestety ta część odpowiedzialna za return true; i kod w kalmerkach else się nie wykonuje tylko zwyczajnie czeka na załadowanie strony.

Ostatecznie potrzebuję to, aby po wysłaniu formularza zamówienia usunąć przycisk "wyślij formularz", aby klient czekając na request z serwera w nerwach nie klikał pierdyliard razy bo później mi wyskakuje kilka takich samych zleceń.

Napisany przez: gitbejbe 30.01.2018, 18:16:34

Tak na szybko

  1.  
  2. var wyslano = false;
  3.  
  4. $( "#sendForm" ).on('submit', function(event) {
  5.  
  6. if (bledy) {
  7. ...
  8. }
  9. else if(wyslano == false){
  10. wyslano = true;
  11.  
  12. $('#sendForm').css('display', 'none');
  13. $('#waitSend').css('display', 'block');
  14.  
  15. return true;
  16. }
  17.  
  18. return false;
  19.  
  20. });
  21.  

Napisany przez: esiek 30.01.2018, 23:25:08

Dziękuje za odpowiedź ale przyznam, że nie sprawdzałem nawet. Ostatecznie po wykonaniu walidacji w klamerkach użyłem $.post, gdzie serwer zwraca mi link do zamówienia po jego utworzeniu. Na zwróconą wartość z $.post przekierowuję klienta i sprawa się rozwiązuje. W razie wyłącznie JS wszystko przechodzi na serwer i jest ok. Walidacja po stronie przeglądarki jest taka sama jak po stronie serwera wiec nie powinno być problemów.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)