• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Który formularz został kliknięty? (modal, zabezpieczenie przed przypadkowym usunięciem).

Object Storage Arubacloud
0 głosów
122 wizyt
pytanie zadane 27 marca 2020 w JavaScript przez webot Nowicjusz (200 p.)
<script>
  $(document).ready(function() {
  $( "div#confirmBox" ).hide();                 
      $( 'input#usunFot ').click(function() { // element który uruchamia skrypt                      
           var szer = 400;             
    $( "#confirmBox" ).dialog({  // id elementu w którym zdefiniowano okno                  
      resizable: false,
      height: "auto",
      width: 400,
      modal: true,
      buttons: {
        "Usuń element": function() {       
          $( "form#formUsunFot" ).submit();  // ID formularza, który ma być wysłany
          $( this ).dialog( "close" );             
        },
        "Anuluj akcję": function() {
          $( this ).dialog( "close" );
        }
      }
    });
  });    
 });
</script>


<script>
  $(document).ready(function() {
  $( "div#confirmBox" ).hide();                   
      $( 'input#usunWpisConf ').click(function() {  // element który uruchamia skrypt                 
           var szer = 400;             
    $( "#confirmBox" ).dialog({      //  id elementu w którym zdefiniowano okno                  
      resizable: false,
      height: "auto",
      width: 400,
      modal: true,
      buttons: {
        "Usuń element": function() {       
          $( "form#usunWpis" ).submit();   // ID formularza, który ma być wysłany
          $( this ).dialog( "close" );             
        },
        "Anuluj akcję": function() {
          $( this ).dialog( "close" );
        }
      }
    });
  });    
}); 
</script>
<div id="confirmBox" title="Usuwanie elementu">
  <p><span class="ui-icon ui-icon-alert"></span>
  Czy na pewno chcesz usunąć ten element?</p>
</div>

      <form id="formUsunFot" enctype="multipart/form-data" action='#' method="POST">              
          <input type="submit" name="usunFot" value="usuń" style="display:none" />
          <input id="usunFot" type="button" name="usunFot" value="usuń zdjęcie" style="" />
               
      </form>
      
      
      <form id="usunWpis" action="#" method="POST">
         <input type="submit" name="fotOut" value="usuń" class="grau" style="display:none" /> 
         <input id="usunWpisConf" type="button" name="fotOut" value="usuń wpis" style="" />   
      </form>  

Witam wszystkich, oto opis sytuacji:

W kodzie HTML mam kilka formularzy, które mogą usuwać elementy z bazy. Żeby się zabezpieczyć przed przypadkowym usunięciem czegoś, zastosowałem gotowe rozwiązanie - po kliknięciu "usuń"  treści jest przysłaniana warstwą, na której są przyciski "potwierdź" i "anuluj". Formularz jest wysyłany tylko w przypadku kliknięcia "potwierdź". Na chwilę obecną dla każdego formularza mam dedykowany kod jQuery, który reaguje na kliknięcie skojarzonego z nim formularza. Wszystko działa prawidłowo, ale w ramach optymalizacji chciałbym mieć tylko jeden kod jQuery, który obsłużył by wszystkie formularze. W tym celu trzeba do skryptu jQuery przekazać (z formularza HTML) ID klikniętego przycisku, oraz ID formularza, który to formularz powinien być wysłany na skutek potwierdzenia. JS i jQuery dopiero się uczę (w wolnych chwilach). W JS potrafię to przekazać, jednak nie wiem jak to zrobić w jQuery. Jeżeli ktoś wie jak to zrobić, bardzo proszę o pomoc, najlepiej z choćby krótkim wyjaśnieniem jak to działa. Oczywiście dołączam kod o którym mowa, pozdrawiam.

1 odpowiedź

+1 głos
odpowiedź 27 marca 2020 przez eunstachy Stary wyjadacz (14,180 p.)

Nadaj wszystkim przyciskom submit w formularzach tą samą klasę np "form-submit". ID konkretnego właśnie klikniętego przycisku wyciągniesz z kontekstu "this" (czyli z elementu który wywołał daną akcję). Następnie szukając w górę w drzewie DOM znajdź najbliższy element form i z niego też wyciągnij ID. Przykład:

    $('.form-submit').click(function() {
        const buttonID = $(this).attr('id')
        const formID = $(this).closest('form').attr('id')
    })

 

komentarz 30 marca 2020 przez webot Nowicjusz (200 p.)
Dziękuję, dokładnie o to mi chodziło, wszystko działa !

Podobne pytania

+1 głos
0 odpowiedzi 532 wizyt
0 głosów
2 odpowiedzi 1,447 wizyt
pytanie zadane 15 września 2018 w JavaScript przez BetBet Użytkownik (550 p.)
0 głosów
1 odpowiedź 211 wizyt
pytanie zadane 26 listopada 2020 w PHP przez Igorek Mądrala (6,290 p.)

92,583 zapytań

141,434 odpowiedzi

319,668 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...