43-解决方案
10.10.2 解决方案
找到 <form> 元素,拦截其 submit 事件:
$('form').submit(function(event){
// 我们想用Ajax提交表单(避免闪烁)
event.preventDefault();
//在这里放置验证代码(如果有的话)
// ...
//通知服务器端进程使用了Ajax
$('input[name="usingAJAX"]',this).val( 'true' );
//保存对表单的引用
var $this = $(this);
//从表单元素捕捉URL
var url = $this.attr('action');
// 准备要发送的表单数据
var dataToSend = $this.serialize();
// 告诉我们服务器端进程信息的回调函数
var callback = function(dataReceived){
//隐藏表单(幸好存储了它的引用)
$this.hide();
//在例子中,服务器返回一个HTML片段,只要将它附加到DOM中就可以了
// 期望的结果: <div id="result">Your favorite food is pizza! Thanks for
// telling us!</div>
$('body').append(dataReceived)
};
//接收数据类型(预计的是HTML片段)
var typeOfDataToReceive = 'html';
//现在发送表单等待返回数据
$.get( url, dataToSend, callback, typeOfDataToReceive )
}); //结束.submit()