总结:我有一个:
1) 主页(主页.php)2) 简单.js脚本文件(仪表板.js)3) 另一个简单的.php文件 (form1.php)4)进程.php,处理.js文件发送的信息的文件(process.php)
就像 tumblr 一样,我正在尝试重新创建相同的"导航"体验 - 单击几个选项,用新代码替换主面板,并在填写某个表单时,将该信息发送到 BD 并在主表单中显示结果.php
一切都很顺利,但最后一步。单击导航按钮(main.php),通过javascript(仪表板.js+ form1.php)引入新表单,填写该表单后,我单击按钮,而不是不重新加载页面(jquery->ajax),它将我发送到进程.php文件并向我显示结果。
我尽量不使用"返回 false"和"event.preventdefault()"重新加载,结果仍然相同。
JS代码
$('form.ajax').on('submit', function() {
event.preventDefault();
var that = $(this),
url = that.attr('action'),
type = that.attr('method'),
data = {};
that.find('name').each(function(index, value) {
var that = $(this),
name = that.attr('name'),
value = that.val();
data[name] = value;
});
$.ajax({
url: url,
type: type,
data: data,
success: function(html){
event.preventDefault();
$("ol#list-feed").append(html);
document.getElementById('set-width1').value='';
document.getElementById('tags').value='';
}
});
event.preventDefault();
return false;
});
您尚未定义event
:
$('form.ajax').on('submit', function(event) {
event.preventDefault();
//...
});
您需要将第一行更改为:
$('form.ajax').on('submit', function(event) {
否则,函数内的event
变量是未定义的。
尝试这样做
$('form.ajax').on('submit', function(event) {
event.preventDefault();
//do other works here
}
或者从任何地方删除 event.preventDefault(),在这个函数结束之前,只需使用 return false。
这应该有效
$('form.ajax').on('submit', function(event) {