jquery的ajax验证,阻止表单提交有关问题
jquery的ajax验证,阻止表单提交问题
以上ajax无法修改ajaxRes.flag值,但加上标红的调试alert就可以了。这什么情况。
------解决方案--------------------
可能你的请求出错了, 跳到 error callback里了
------解决方案--------------------
$.ajax请求是需要时间的,还没返回值,你就运行了if(ajaxRes.flag=='m0')
你添加了alert(ajaxRes.flag)起到延时阻止运行作用,此时ajax已经返回值了。所以你的代码应该是:
success: function(msg){
ajaxRes.flag = msg;
if(ajaxRes.flag=='m0'){
alert('000');
}else{
alert('111');
}
}
------解决方案--------------------
alert(ajaxRes.flag);//按你的写法,这里永远是true,但下面ajaxRes.flag的值就随ajax返回不同而不同了
if(ajaxRes.flag=='m0'){
alert('000');
}else{
alert('111');
}
------解决方案--------------------
应该是async:false
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<title>js test</title>
<script language="javascript" type="text/javascript" src="jquery.min.js"></script>
</head>
<body>
<script>
function ajaxRes(){};
ajaxRes.flag = true;
function aj(){
$.ajax({
type: "POST",
url: "test.php",
async:'false',
data: "",
success: function(msg){
ajaxRes.flag = msg;
alert(ajaxRes.flag);
}
});
//alert(ajaxRes.flag);
if(ajaxRes.flag=='m0'){
alert('000');
}else{
alert('111');
}
}
aj();
</script>
</body>
</html>
以上ajax无法修改ajaxRes.flag值,但加上标红的调试alert就可以了。这什么情况。
------解决方案--------------------
可能你的请求出错了, 跳到 error callback里了
------解决方案--------------------
$.ajax请求是需要时间的,还没返回值,你就运行了if(ajaxRes.flag=='m0')
你添加了alert(ajaxRes.flag)起到延时阻止运行作用,此时ajax已经返回值了。所以你的代码应该是:
success: function(msg){
ajaxRes.flag = msg;
if(ajaxRes.flag=='m0'){
alert('000');
}else{
alert('111');
}
}
------解决方案--------------------
alert(ajaxRes.flag);//按你的写法,这里永远是true,但下面ajaxRes.flag的值就随ajax返回不同而不同了
if(ajaxRes.flag=='m0'){
alert('000');
}else{
alert('111');
}
------解决方案--------------------
应该是async:false