一、什么叫Ajax
Ajax不是一项新技术,而是使用其他技术,组合成的新功能,Ajax称为异步的JavaScript和XML。
Ajax可以异步请求,或者说局部刷信
二、JQuery Ajax用法
reg.jsp
function checkName(){
//失焦的时候触发检测用户名的方法,去后台请求数据,判断用户名是否存在
var username=$("#username").val();
$.ajax({
url:"UserServlet", //请求的地址
type:"post", //请求的方式
data:{ //请求的参数
username:name,
flag:"checkUser"
},
success:function(result){ //请求成功后的回调方法,result为请求的返回结果
if(result=="200"){
alert("用户不存在,可以注册");
}else if(result=="400"){
alert("用户存在,不可以注册");
}else{
alert("验证异常");
}
}
})
}
注意:在调用一个jquery的ajax方法时,我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是程序执行完后并没有获取到我们想要的值,这时很有可能是因为ajax的异步调用async:true(默认)
为了与原来方法完成的功能保持一致,需要返回true或者false,完成表单验证。这时就需要修改ajax的调用方法添加async: false,
//检测表单是否通过验证
function checkForm(){
if(checkName()&&checkPass()&&checkRePass()){
return true;
}else{
return false;
}
}
//检测用户名
function checkName(){
/*var username=$("#username").val();
if(username.length>=6){
$("#nameMsg").html("<font color='green' size=2> 输入正确</font>");
return true;
}else{
$("#nameMsg").html("<font color='red' size=2> 用户名应为6位及以上!</font>");
return false;
}*/原来的代码
//失焦的时候触发检测用户名的方法,去后台请求数据,判断用户名是否存在
var username=$("#username").val();
var flag11=false;
$.ajax({
url:"UserServlet", //请求的地址
type:"post", //请求的方式
data:{ //请求的参数
username:username,
flag:"checkUser"
},
async: false, //
success:function(result){ //请求成功后的回调方法,result为请求的返回结果
if(result=="200"){
//alert("用户不存在,可以注册");
//
$("#nameMsg").html("<font color='green' size=2> 用户不存在,可以注册</font>");
flag1=ture;
}else if(result=="400"){
//alert("用户存在,不可以注册");
$("#nameMsg").html("<font color='red' size=2> 用户存在,不可以注册</font>");
}else{
//alert("验证异常");
$("#nameMsg").html("<font color='red' size=2> 验证异常</font>");
}
}
})
return flag1;
}