问一个在学习sp中碰到的JQuery问题?
发布于:2022-01-17 09:50:54
#1 azwl
有这样一个连接
" id="newsadd" alt="您需要登录后才能发表文章">发表文章用JQuery绑定CLICK事件,点击时发送ajax请求,用于检验用户是否登录或是否有发表文章的权限,有权限则click返回true否则返回false。
但下面的程序总是返回true。
$("newsadd").bind('click',usercheck);
function usercheck(){
check=true;
$.post("index.php",
{ c:'user', a:'usercheck' },
function(data){
if (data.success!="OK")
{
alert("您需要登录后才能发表文章,或您的权限不够!");
check= false;
}
},
"json");
return check;
}
2010-04-09 22:46:23
#2 jake
JQ我就不是很熟悉,用firebug看看过程数据吧。
另外,index.php?c=user&a=usercheck这个是返回什么呢?直接看过没?
还有,不清楚jQuery这种Ajax调用,调用端还能不能有COOKIE或SESSION,这些要把他们的返回值不断调试才清楚的。
2010-04-10 09:32:54
#3 azwl
JQ我就不是很熟悉,用firebug看看过程数据吧。
另外,index.php?c=user&a=usercheck这个是返回什么呢?直接 ...
jake 发表于 2010-4-10 09:32 
index.php?c=user&a=usercheck 这个是检查用户的登录状态和权限的,返回的是json数据。工作是正常的。
这个问题其实我知道问题在哪里?但不知道如何解决,就是check变量的作用域问题,就是说在$.post的回调函数中如何改变check(在$.post前面的那条语句)的值。
2010-04-10 10:20:21
#4 redguan
问题出在JS上了。
if (data.success!="OK")
的
上面加一句
alert(data.success);
试试是不是显示OK 还有就是返回参数的大小写,是OK,还是ok
2010-04-10 10:46:54
#5 azwl
问题出在JS上了。
if (data.success!="OK")
的上面加一句
alert(data.success);
试试是不是显示OK 还有就 ...
redguan 发表于 2010-4-10 10:46 
js语句没有问题,问题是出在if (data.success!="OK")中的check=false不能改变return 后的check值。
2010-04-10 11:06:01