2013-08-28 3 views
0

У меня есть форма, разделенная на три div, отображаемая в стиле аккордеона и представленная в вызове Ajax, однако кажется, что страница перезагружается, потому что все отображаемые аккордеонные divs будут скрыты после вызова. Я думаю, что я правильно допустил действие по умолчанию, но кажется, что я чего-то не хватает.Перегрузка страницы на успех Ajax

//------------------ accordion ------------------------------------- 
$('.heading').on('click', 'img', function() { 

    var x = $(this).parent().next('div'); 
    $(x).slideToggle(function() { 
     if($(x).not(":hidden")) { 
      $(this).prev().find('img').attr('src','images/triangle_red_up.jpg'); 
      } 
     if($(x).is(":hidden")) { 
       $(this).prev().find('img').attr('src','images/triangle.jpg'); 
       } 
     }); 
    }); 

Ajax 
//------------------ form submit -----------------------------------   
$('form').submit(function(e) { 
     e.preventDefault(); 
    var datastring = $(this).serialize(); 

    $.ajax({ 
     type: "POST", 
     url: "includes_php/pU_6.php", 
     data: datastring, 
     dataType: "json", 
     success: function(data) { 
      messages(data); 
     } 
     }) 
    }) 

$('input#submit').click() { 
$('form').submit(); 

});

+0

Является ли ваш элемент '# submit' внутри формы? Если нет, вам может понадобиться «preventDefault» при щелчке этого элемента. –

+0

Нет, это элемент кнопки вне формы, и именно поэтому я не предотвратил его. – user2232681

ответ

0

Попробуйте

$('#submit').click() { 
      e.preventDefault(); 
     var datastring = $('form').serialize();//if you have a form id use $('<frm id>').serialize() 

     $.ajax({ 
      type: "POST", 
      url: "includes_php/pU_6.php", 
      data: datastring, 
      dataType: "json", 
      success: function(data) { 
       messages(data); 
      } 
      }); 
}); 
0

Мой плохой - имел location.reload в сообщениях (функция).

Смежные вопросы