2013-08-28 159 views
0

我有一個表單分割成三個div,以手風琴風格顯示並在Ajax調用中提交,但似乎頁面正在重新加載,因爲顯示的任何手風琴div都會在調用後隱藏。我想我已經阻止了正確的默認行爲,但似乎我錯過了一些東西。頁面重新加載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()函數。