我正在借助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之后调用
任何建议或想法都会很棒,提前谢谢!
答案 0 :(得分:3)
尝试用$('form').on('submit' ...
替换$('body').on('submit', 'form', ...
..我很确定,jQuery会在代码加载时将事件绑定到$('form')
元素 - 然后,当您使用{加载表单时{1}},事件未绑定到表单。
使用另一种方法,它将偶数绑定到始终存在的$.get
,并在事件目标是表单元素时执行绑定函数。