Witam was serdecznie.

Mam taki o to problem:
Wywołuję przez kliknięcie button metodę ajax, która pobiera sample.html. W tym html`u jest button, który z nowu wywołuje tę samą akcję czyli za pomocą ajax`a pobiera sample.html. W metodzie 'beforeSend' czyszczę to co wcześniej ładowałem.

W metodzie 'success' mam alert('asd'); i za 1 razem gdy wywołam pojawia się 1x dialog. Gdy tak po klikam w kolejne button to wzrasta ilość tych dialogów razy 2 a chciałbym żeby tylko raz się pojawiał jak za pierwszym razem.

  1.  
  2.  
  3. <form method="post" action="" class="ajax-form-contact jtransform">
  4.  
  5. <script>
  6. $(function() {
  7. $('form.jtransform').jqTransform();
  8.  
  9. $('form.ajax-form-contact').live('submit', function() {
  10. var json = $(this).serializeArray();
  11. $.ajax({
  12. url: '<?=$this->url(array(), 'admin_ajax_company_add_contact'); ?>',
  13. data: json,
  14. async: true,
  15. cache: false,
  16. type: 'POST',
  17. global: false,
  18. beforeSend: function(xhr) {
  19. $('div.ajax-content').html('');
  20. xhr.overrideMimeType("text/plain; charset=x-user-defined");
  21. },
  22. success: function(msg) {
  23. var success = '<?=($this->success === true) ? 'true' : 'false'; ?>';
  24.  
  25. alert(success);
  26.  
  27. $('div.ajax-content').html('');
  28. $('div.ajax-content').html(msg);
  29. }
  30. });
  31. return false;
  32. });
  33. })
  34. </script>
  35. <h3><?=$this->translate('Add new contact'); ?></h3>
  36.  
  37. <div class="table">
  38. <div class="row">
  39. <div class="col"><label><?=$this->translate('Name'); ?>:</label></div>
  40. <div class="col"><label><?=$this->translate('Surname'); ?>:</label></div>
  41. </div>
  42. <div class="row">
  43. <div class="col"><?=$this->form->getElement('Name'); ?></div>
  44. <div class="col"><?=$this->form->getElement('Surname'); ?></div>
  45. </div>
  46. </div>
  47. <button class="button gray"><?=$this->translate('Add contact'); ?></button>
  48. </form>


Nie wiem nawet jak szukać w internecie więc proszę o jakiekolwiek materiały.

Z góry dzięki smile.gif

Rozwiązałem problem.

Problem polegał z funkcją "live('submit', function() {...})". Powinno być bez live i tylko submit.