问一个在学习sp中碰到的JQuery问题?

#1 azwl

有这样一个连接 发表文章

用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