0

我有一个分成三个 div 的表单,以手风琴样式显示并在 Ajax 调用中提交,但是似乎页面正在重新加载,因为任何显示的手风琴 div 都会在调用后隐藏。我想我已经正确地阻止了默认操作,但似乎我遗漏了一些东西。

//------------------ 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();

});

4

2 回答 2

0

我的错 - 在 messages() 函数中有一个 location.reload 。

于 2013-08-28T17:45:28.867 回答
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);
            }
           });
 });
于 2013-08-28T16:50:39.607 回答