Używam jQuery, aby pokazać / ukryć div, klikając przycisk Pokaż / Ukryj przyciski. Jednak mój kod nie działa, ponieważ za każdym razem, gdy powraca do tego, co było wcześniej, gdy kliknął na moje przyciski. Jestem prawie pewny, że jest to spowodowane przeładowaniem strony, ponieważ za każdym razem klikam przycisk, który przeładuje stronę.
Czy ktoś wie, co może być powodem tego?

Oto ważny kawałek kodu:

<form role="form" method="post" action="./something.php">
  ...
  <button id="hidemultmachines" onclick="$('#multmachines').hide(); $(this).hide(); $('#showmultmachines').show();">
    Hide section below ...
  </button>
  <button id="showmultmachines" onclick="$('#multmachines').show(); $(this).hide(); $('#hidemultmachines').show();">
    ... Create multiple entries
  </button>
  <div id="multmachines">
    ...
  </div>
  <div>
    <div>
      <input type="hidden" name="total" value="{ $smarty.section.i.total }">
      <button type="submit" name="Submit" value="Save">Save</button>
    </div>
  </div>
</form>

I to jest mój kod jQuery w nagłówku:

$(document).ready(function(){
    $('#hidemultmachines').hide();
    $('#multmachines').hide();
}

Kiedy umieściłem przyciski poza formą, którą działa. Dlaczego?

4
Othmane 12 sierpień 2014, 17:40

1 odpowiedź

Najlepsza odpowiedź

To dlatego, że elementy button nie mają określonego type, a domyślnie button elementy mają swoje type ustawione na "Prześlij". Po kliknięciu jednego z przycisków próbują przesłać formularz. Po prostu określenie type "Przycisk" naprawi to:

<button type="button" class="close" id="hidemultmachines" onclick="..."></button>
10
James Donnelly 12 sierpień 2014, 13:42