我用这个函数来包装jQuery的AJAX POST函数。
function POST(_url,_data,_container,success,anim) {
var _loader = null
var doAJAX = function() {
$.post(_url,_data,success);
};
if(typeof anim===undefined) {
doAJAX();
} else if(_container!=null) {
switch(anim) {
case 'loading':
_loader = $("<div class='LoadingAnim' style='display:none;'></div>");
_container.empty();
_loader.appendTo(_container).fadeIn('fast',doAJAX);
break;
case 'fade':
_container.fadeOut('fast',doAJAX);
break;
case 'slide':
_container.slideUp('fast',doAJAX);
break;
}
}
}
我添加了_container
参数,这是在div这就是要保持内容的jQuery对象。可选的anim
参数可以更改清除容器的动画。此外,加载图像是通过在清除后在容器中插入div来实现的。该div有一个类,它具有动画加载图标并在其父容器中正确居中。 doAJAX
功能过去更长,但我不得不削减一些因为它不是有用的答案,这就是为什么它似乎不一定是空的。如果使用除“加载”之外的任何anim
选项,请确保将容器重置为在success
函数中可见。
使用是这样
POST('some-script.php',{data: values},$('#containerToPrintTo'),function(data) {
//Do some error checking or get the return from data and insert it.
}, 'loading');
你是否提交表单有或没有ajax? – steve
您是否直接使用普通浏览器POST提交表单?这不适合你想做的事情。您需要使用AJAX,并在等待返回“成功”时显示一个模式。 –
@barjonah没有ajax。 – ramonovski