通用标题的道歉。
我有两个jQuery文件,一个处理表单提交,另一个处理页面超链接。
表单提交检查表单条目是否为空白,如果是 - 它通知用户并将显示错误消息,当表单填写表单时,数据将传递给处理文件。
超链接将新页面数据加载到div中,这个新页面数据通常包括由处理文件处理的表单。
我不知道为什么 - 但是~60%的表单提交将在点击并加载主索引页面或上次访问的页面时“刷新”。这似乎完全是随机的。
我不明白为什么会这样,如果有人能告诉我,我会非常感激。
表单提交代码:
$(document).ready(function(){
$('.ajax_form').submit(function() {
// check for empty inputs
var errors = 0;
$(".ajax_form :input").map(function(){
if(!$(this).val()) {
errors++;
}
});
// if empty inputs inform user
if(errors > 0){
$('#results').text("All fields are required");
return false;
}
// hide form and show loader
$(".ajax_form").slideUp("normal");
$('#results').html('<span id="load">Loading..</span>');
// post data to processing file
$.post(
'processing.php',
$(this).serialize(),
function(data){
$("#results").slideDown("normal");
$("#results").html(data)
}
);
return false;
});
});
导航代码:
$(document).ready(function(){
// if hash is already set, load linked data
var hash = window.location.hash.substr(1);
$('#nav li a').each(function(){
if(hash == $(this).attr('href')){
var toLoad = hash + '.php';
$('#content').load(toLoad)
}
});
// each menu item on click load linked data
$('#nav li a').click(function(){
var toLoad = $(this).attr('href') + '.php';
window.location.hash = $(this).attr('href');
$('#content').prepend('<span id="load">Loading..</span>');
$('#content').hide();
$('#content').load(toLoad);
$('#content').slideDown('normal');
return false;
});
});
答案 0 :(得分:0)
您的表单会刷新,因为在到达return false;
部分之前,脚本会中断
在某个地方。
使用firebug
或类似内容来检测此问题。务必处理所有结果或所有条件。
可能是快速干运行可以检测到的差距。