У меня есть форма, разделенная на три 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();
});
Является ли ваш элемент '# submit' внутри формы? Если нет, вам может понадобиться «preventDefault» при щелчке этого элемента. –
Нет, это элемент кнопки вне формы, и именно поэтому я не предотвратил его. – user2232681