jQuery MiniUI

 找回密码
 立即注册
查看: 6593|回复: 10
打印 上一主题 下一主题

验证过函数没有问题,但是没有返回值!求助呀 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-5-7 10:09:08 |只看该作者 |倒序浏览
写了个从服务器端获取随机字符串:
       function getRandomStr(){
            var RandomStr = "";
            $.get("./data/DataService.aspx?method=GetRandomStr",function(data,state){
                var rdstr = mini.decode(data).rdstr;
                RandomStr = rdstr;
            });
            return RandomStr;
        }
验证过,服务器端有返回值随机字符串。但是“RandomStr = rdstr;”中赋值的语句并没有将rdstr赋值给RandomStr,返回值始终为空!怎么回事?谢谢……

Rank: 8Rank: 8

沙发
发表于 2013-5-7 10:30:47 |只看该作者
你的data里面确保有数据了吗?

Rank: 2

板凳
发表于 2013-5-7 10:33:57 |只看该作者
factory 发表于 2013-5-7 10:30
你的data里面确保有数据了吗?

绝对有,后台返回的随机字符串

Rank: 2

地板
发表于 2013-5-7 10:38:54 |只看该作者
XTX827227881 发表于 2013-5-7 10:33
绝对有,后台返回的随机字符串

返回的字符串:
{"rdstr":"1d60f5"}

Rank: 2

5#
发表于 2013-5-7 15:29:45 |只看该作者
XTX827227881 发表于 2013-5-7 10:38
返回的字符串:
{"rdstr":"1d60f5"}

大侠们,没有办法么?

Rank: 8Rank: 8

6#
发表于 2013-5-7 15:33:24 |只看该作者
XTX827227881 发表于 2013-5-7 15:29
大侠们,没有办法么?

你先用你这个方式,确保从后台返回一个随便什么数据回来,先不用管miniui,miniui是前台的JS框架,跟后台是无关的

Rank: 2

7#
发表于 2013-5-7 15:39:46 |只看该作者
factory 发表于 2013-5-7 15:33
你先用你这个方式,确保从后台返回一个随便什么数据回来,先不用管miniui,miniui是前台的JS框架,跟后台 ...

好像写的每个js函数都不能返回值!难道是我的环境有问题?崩溃了,其他的页面就可以呀

Rank: 2

8#
发表于 2013-5-7 15:40:41 |只看该作者
XTX827227881 发表于 2013-5-7 15:39
好像写的每个js函数都不能返回值!难道是我的环境有问题?崩溃了,其他的页面就可以呀 ...

全部的代码都在这儿了:(大侠帮个忙吧)
<!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>
    <title>登录-报名收费系统</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <link href="css/demo.css" rel="stylesheet" type="text/css" />
    <script src="js/boot.js" type="text/javascript"></script>
   
    <style type="text/css">
        body
        {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
        }
        .loginPanel
        {
            margin: 120px auto;
            height: 240px;
            width: 620px;
            background: url(image/login_form.gif) no-repeat center;
        }
    </style>
</head>
<body>
    <div id="loginForm" class="loginPanel">
        <div style="padding-top: 80px;">
            <table>
                <tr>
                    <td style="width: 390px;">
                    </td>
                    <td style="width: 40px;">
                        <label for="username$text">
                            班级:</label>
                    </td>
                    <td>
                        <input id="uid" name="uid" class="mini-treeselect" url="./data/DataService.aspx?method=GetAllClass" multiselect="false" emptyText="请选择班级" valuefromselect="false"
                            textfield="text" valuefield="id" parentfield="pid" allowinput="true" onbeforenodeselect="beforenodeselect"
                            style="width: 150px;" />
                    </td>
                </tr>
                <tr>
                    <td>
                    </td>
                    <td>
                        <label for="pwd$text">
                            密码:</label>
                    </td>
                    <td>
                        <input id="pwd" name="pwd" onvalidation="onPwdValidation" class="mini-password" emptyText="请输入密码" requirederrortext="密码不能为空"
                            required="true" style="width: 150px;" onenter="onLoginClick" />
                    </td>
                </tr>
                <tr>
                    <td>
                    </td>
                    <td>
                    </td>
                    <td>
                        <a onclick="onLoginClick" class="mini-button" style="width: 60px;">登录</a> <a onclick="onResetClick"
                            class="mini-button" style="width: 60px;">重置</a>
                    </td>
                </tr>
            </table>
        </div>
    </div>

    <script type="text/javascript">
        mini.parse();        
                       
        function onLoginClick(e) {
            var form = new mini.Form("loginForm");            
            form.validate();
            if (form.isValid() == false) return;
            
            var UserID = mini.get("uid");
            var uid = UserID.getValue();
            
            var PassWord = mini.get("pwd");
            var pwd = $.md5(PassWord.getValue());            
            
            //获取随机字符串
            var rdstr = getRandomStr();
            mini.alert(rdstr);
            pwd = $.md5(pwd + rdstr);
                        
            //提交信息
            //$.post("./data/DataService.aspx?method=UserIsValidation",
                //{uid:uid,pwd:pwd},
                //function(data,status){
                    //var result = mini.decode(data);
                    //mini.alert("UserID: " + result.uid + "\nPassword:" + result.pwd);
                //}
           //);
        }
        function getRandomStr(){
            var RandomStr = "NO";
            RandomStr = $.get("./data/DataService.aspx?method=GetRandomStr",
                            function(data,state){
                                RandomStr = mini.decode(data);
                            }
                        );
            return RandomStr.rdstr;
        }
        function onResetClick(e) {
            var form = mini.Form("loginForm");
            form.clear();
        }
        function beforenodeselect(e) {
            //禁止选中父节点
            if (e.isLeaf == false) e.cancel = true;
        }
        /////////////////////////////////////
        function onPwdValidation(e) {
            if (e.isValid) {
                if (e.value.length < 6) {
                    e.errorText = "密码不能少于6个字符";
                    e.isValid = false;
                }
            }
        }
    </script>

</body>
</html>

Rank: 8Rank: 8

9#
发表于 2013-5-7 16:24:22 |只看该作者
XTX827227881 发表于 2013-5-7 15:40
全部的代码都在这儿了:(大侠帮个忙吧)

你说的是$.get()里面无法获取到后台返回的数据啊

是不是$.get()出了问题,miniui跟后台的交互是通过jquery的AJAX交互的

Rank: 2

10#
发表于 2013-5-7 16:57:53 |只看该作者
factory 发表于 2013-5-7 16:24
你说的是$.get()里面无法获取到后台返回的数据啊

是不是$.get()出了问题,miniui跟后台的交互是通过jque ...

后台的数据已经用HttpWatch截获到{"rdstr":"1d60f5"}了,可是这个函数返回的是空值:
        function getRandomStr(){
             var RandomStr = "NO";
             RandomStr = $.get("./data/DataService.aspx?method=GetRandomStr",
                             function(data,state){
                                 RandomStr = mini.decode(data);
                             }
                         );
             return RandomStr.rdstr;
         }
真心无语!

Archiver|普加软件

GMT+8, 2024-11-25 02:02 , Processed in 1.029946 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部