无法在一个请求中进行两次ajax调用

时间:2014-02-12 08:39:43

标签: php jquery

我正在借助jquery和ajax在php中创建用户配置文件。

脚本的作用是它有一个左侧导航,它是从通过ajax发出的请求填充内容区域的选项卡。

所以我点击一个标签,它会加载一个页面(使用.get()),页面内容就是一个表单。提交表单时,会对php文件发出ajax请求,该文件使用该数据来确定要执行的操作。现在我没有在php文件中设置任何东西,除了回复发送回DOM知道它有效的响应。

以下是与相关代码相关的JavaScript:

/**
 * 
 */
$(function() {
        $('form').on('submit', function(event) {

    event.preventDefault();

    var target = $(this).attr('href');

    $.post(target, function(data) {
        if (data) {
            $('#flash').html(data).hide().fadeIn('fast');
        }
    });
  });
});

/**
 * 
 */
$(function() {
    $('#profile-tabs > a').on('click', function(event) {

    event.preventDefault();

    $('#profile-tabs > a').removeClass('active');

    $(this).addClass('active');

    var target = $(this).attr('href');

    $.get(target, function(data) {
        if (data) {
            $('#profile-content').html(data).hide().fadeIn('fast');
        }
    });
  });
});

当我在没有ajax的情况下直接加载选项卡时,它提交的很好,唯一不起作用的是通过ajax请求调用内容时。

我刚刚提供的javascript代码位于一个名为profile.js的文件中,并在jquery.js之后调用

任何建议或想法都会很棒,提前谢谢!

1 个答案:

答案 0 :(得分:3)

尝试用$('form').on('submit' ...替换$('body').on('submit', 'form', ... ..我很确定,jQuery会在代码加载时将事件绑定到$('form')元素 - 然后,当您使用{加载表单时{1}},事件未绑定到表单。

使用另一种方法,它将偶数绑定到始终存在的$.get,并在事件目标是表单元素时执行绑定函数。