jQuery MiniUI

标题: 登录界面问题 [打印本页]

作者: angle    时间: 2014-3-15 11:15:00     标题: 登录界面问题

为啥我登录界面的页面在 function onLoginClick(e) 中一加入 $.ajax  登录界面就成空白页了  function onLoginClick代码:
var form = new mini.Form("#loginWindow");

            form.validate();
            if (form.isValid() == false) return;

            loginWindow.hide();
            
            var data = form.getData();
            var json = mini.encode(data);
            $.ajax({
                   url: "/task_UI/user/User?action=loginValidate",
                   type: "post",
                   data: { data: json },
                   success: function (text) {
                       //if(text.indexOf("失败")>=1)alert(text);
                       //CloseWindow("save");
                       elert(text);
                        mini.loading("登录成功,马上转到系统...", "登录成功");
                        setTimeout(function () {
                            window.location = "task/outlooktree.html";
                        }, 1500);
                  
            });


作者: felt    时间: 2014-3-15 20:08:50

ajax是异步的,你加一下
async:false
试试
作者: angle    时间: 2014-3-26 15:11:35

felt 发表于 2014-3-15 20:08
ajax是异步的,你加一下
async:false
试试

这个在哪块加
作者: lost    时间: 2014-3-26 15:18:29

angle 发表于 2014-3-26 15:11
这个在哪块加

$.ajax({
                   url: "/task_UI/user/User?action=loginValidate",
                   async:false,
                   type: "post",
....
});
作者: angle    时间: 2014-3-27 14:55:41

lost 发表于 2014-3-26 15:18
$.ajax({
                   url: "/task_UI/user/User?action=loginValidate",
                   as ...

为啥我登录成功或失败都返回到成功的index1页面
$.ajax({
                       url: "/task_UI/user/User?action=loginValidate",
                       type: "post",
                       data: { data: json },
                       success: function (text) {
                                       alert(text);
                                       setTimeout(function () {
                                        window.location = "index1.jsp";
                                    }, 1500);
                       },
                       error: function (text) {
                                       alert(text);
               
                                   }
                      
                });
作者: felt    时间: 2014-3-27 15:02:01

angle 发表于 2014-3-27 14:55
为啥我登录成功或失败都返回到成功的index1页面
$.ajax({
                       url: "/task_UI/user/User?act ...

这说明是的ajax是成功了,而不是说你的登录是不是成功
你可以在success里处理
作者: angle    时间: 2014-3-27 15:07:51

felt 发表于 2014-3-27 15:02
这说明是的ajax是成功了,而不是说你的登录是不是成功
你可以在success里处理 ...

ajax返回的text都是对的 但是用户名密码错误也转到index1页面 不知道是为啥版主
作者: angle    时间: 2014-3-27 15:10:03

felt 发表于 2014-3-27 15:02
这说明是的ajax是成功了,而不是说你的登录是不是成功
你可以在success里处理 ...

也就是我想让用户名密码错误返回到登录界面 怎么弄 我在error里加window.location 不起作用
作者: felt    时间: 2014-3-27 15:11:36

angle 发表于 2014-3-27 15:07
ajax返回的text都是对的 但是用户名密码错误也转到index1页面 不知道是为啥版主 ...

你登录成功和失败,返回的text不一样吧?
success里判断,如果是成功的就跳转 window.location = "index1.jsp"
如果是失败的就不跳转就好了
作者: angle    时间: 2014-3-27 15:17:06

felt 发表于 2014-3-27 15:11
你登录成功和失败,返回的text不一样吧?
success里判断,如果是成功的就跳转 window.location = "index1 ...

我这样写的 success: function (text) {
                                       alert(text);
                                       if(text == 登录成功!){
                                               window.location = "index1.jsp";
                                       } else{
                                               window.location = "index.jsp";
                                       }
                       },
你帮忙看下哪里写错了
作者: felt    时间: 2014-3-27 15:19:06

angle 发表于 2014-3-27 15:17
我这样写的 success: function (text) {
                                       alert(text);
                                       if(text ==  ...

"登录成功!"??
作者: angle    时间: 2014-3-27 15:21:21

felt 发表于 2014-3-27 15:19
"登录成功!"??

现在又全返回到index这个页面了
作者: felt    时间: 2014-3-27 15:29:35

angle 发表于 2014-3-27 15:21
现在又全返回到index这个页面了

function(text){
    var newText=mini.decode("text")
   if(newText=="登陆成功”){
        
   }else{
      
   }
}
作者: angle    时间: 2014-3-27 15:30:33

felt 发表于 2014-3-27 15:19
"登录成功!"??

text里确实是 登录成功! 但是这样判断好像不行呀
作者: angle    时间: 2014-3-27 15:39:11

felt 发表于 2014-3-27 15:29
function(text){
    var newText=mini.decode("text")
   if(newText=="登陆成功”){

版主 ,这样写不管是成功与否都成空白页了
作者: felt    时间: 2014-3-27 15:47:55

angle 发表于 2014-3-27 15:39
版主 ,这样写不管是成功与否都成空白页了

你看看decode完的数据和你的判断数据到底有什么不一样。。。。
  1. $.ajax({
  2.       url:"t11.txt",
  3.       success:function(text){
  4.            var newText=mini.decode(text)
  5.            if(newText=="登录成功"){
  6.               alert(1);
  7.            }else{
  8.               alert(2);
  9.            }
  10.       }
  11.    })
复制代码
这是我做的例子,t11.txt里就扔了个"登陆成功",没问题啊
作者: factory    时间: 2014-3-27 15:56:36

angle 发表于 2014-3-27 15:39
版主 ,这样写不管是成功与否都成空白页了

你自己判断你和后台返回的数据啊

text是你后台返回的json字符串,获取到之后,判断下,该是什么,就跳转什么啊,
作者: angle    时间: 2014-3-27 15:57:34

felt 发表于 2014-3-27 15:47
你看看decode完的数据和你的判断数据到底有什么不一样。。。。这是我做的例子,t11.txt里就扔了个"登陆成 ...
  1. success: function (text) {
  2.                                        alert(text);
  3.                                        var newText=mini.decode(text)
  4.                                        //alert(newText);
  5.                                        if(newText=="登录成功!"){
  6.                                                window.location = "index1.jsp";
  7.                                        }else{
  8.                                                window.location = "index.jsp";
  9.                                        }
  10.                        },
  11.                        error: function (text) {
  12.                                        alert(text);
  13.                                    }
复制代码
版主还是空白 啊
作者: angle    时间: 2014-3-27 16:07:39

好了 谢谢版主了
作者: angle    时间: 2014-4-2 15:51:37

factory 发表于 2014-3-27 15:56
你自己判断你和后台返回的数据啊

text是你后台返回的json字符串,获取到之后,判断下,该是什么,就跳转什么 ...

版主 为啥在验证完后 弹出框一闪就没有了 直接到下一个界面

  1.               $.ajax({
  2.                        url: "/task_UI/user/User?action=loginValidate",
  3.                        type: "post",
  4.                        data: { data: json },
  5.                        success: function (text) {
  6.                                        if(text.indexOf("成功")>=0){
  7.                                                mini.loading("登录成功,马上转到系统...", "登录成功");
  8.                                                window.location = "index1.jsp";
  9.                                        }else{
  10.                                                mini.alert(text);
  11.                                                window.location = "index.jsp";
  12.                                        }
  13.                        }
  14.                   
  15.                 });
复制代码

作者: factory    时间: 2014-4-2 16:03:32

angle 发表于 2014-4-2 15:51
版主 为啥在验证完后 弹出框一闪就没有了 直接到下一个界面

mini.loading("登录成功,马上转到系统...", "登录成功");
这句话是创建一个loading提示框,但是这个是创建在本页面的,而且他是JS模拟的弹出来,是不会阻塞住下面代码的运行

所以马上执行到跳转页面之后,本页面所有的东西自然全都没了
作者: angle    时间: 2014-4-2 16:05:25

factory 发表于 2014-4-2 16:03
mini.loading("登录成功,马上转到系统...", "登录成功");
这句话是创建一个loading提示框,但是这个是创 ...

是这个啊 mini.alert(text);
作者: felt    时间: 2014-4-2 16:08:15

angle 发表于 2014-4-2 16:05
是这个啊 mini.alert(text);

mini.alert是我们模拟的弹出框,所有模拟出来的弹出都不能阻塞js代码,你可以使用原生的alert
作者: angle    时间: 2014-4-2 16:12:29

felt 发表于 2014-4-2 16:08
mini.alert是我们模拟的弹出框,所有模拟出来的弹出都不能阻塞js代码,你可以使用原生的alert ...

为啥有的地方又可以阻止,这个弹出框的风格和界面比较一致,版主还有啥办法么
作者: felt    时间: 2014-4-2 16:14:39

angle 发表于 2014-4-2 16:12
为啥有的地方又可以阻止,这个弹出框的风格和界面比较一致,版主还有啥办法么 ...

放到回调里处理吧
mini.alert(message, title, function(){
   跳转。。。。。。。。。。。
})
作者: factory    时间: 2014-4-2 16:14:43

angle 发表于 2014-4-2 16:12
为啥有的地方又可以阻止,这个弹出框的风格和界面比较一致,版主还有啥办法么 ...

不能阻止的,JS模拟的任何弹出框,都无法阻塞代码的执行.一般是
var messageid = mini.loading("Loading, Please wait ...", "Loading");
setTimeout(function () {
            mini.hideMessageBox(messageid);
        }, 2500);

延时进行关闭操作




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2