御風 发表于 2014-1-8 21:13:14

Ajax为什么没反应

本帖最后由 御風 于 2014-1-8 21:13 编辑

在做CI的一个练习,做登录验证时,验证输入用户名后,应用Ajax进行验证,如果为空,则提示用户名不能为空,如果存在,则显示规则,如果用户名不存在,则提示用户名不存在,但是我在做时,为空的时候可以实现,当用户名不存在时却没提示
如图
http://codeigniter.org.cn/forums/data/attachment/album/201401/08/210446l44lzea51zecc1nw.png
此时cyys在数据库中不存在,但是页面没反应
http://codeigniter.org.cn/forums/data/attachment/album/201401/08/210445atd7zl88w81nxg98.png
页面的代码如下:
<html>
<head>
    <title>用户登录</title>
    <script type="text/javascript" src="../js/jquery-1.4.3.js"></script>
    <script type="text/javascript" language="javascript">
      var nameFlag=false;
      $(function(){
            $("#name").blur(function(){
                var name=$(this).val();
                if(name==null || name==""){
                  $("#nameMsg").text("用户名不能为空");
                  $("#nameMsg").addClass("required");
                  nameFlag=false;
                  return;
                  }else{
                        $("#nameMsg").text("长度为25以内的字符");
                        $("#nameMsg").removeClass("required");
                        nameFlag=true;
                        }
                $.post(
                  "<?php echo site_url('user/checkName');?>",
                  {name:name},function(data){
                        if(!data){
                            $("#nameMsg").text("用户名不存在");
                            $("#nameMsg").addClass("required");
                            nameFlag=false;
                            }else{
                              $("#nameMsg").text("长度为25以内的字符");
                              $("#nameMsg").addClass("required");
                              nameFlag=true;
                              }
                        });
                });
            $("#pwd").blur(function(){
                var pwd=$(this).val();
                if(pwd==null || pwd==""){
                  $("#pwdMsg").text("密码不能为空");
                  $("#pwdMsg").addClass("required");
                  nameFlag=false;
                  return;
                  }else{
                        $("#pwdMsg").text("长度为25以内的字符");
                        $("#pwdMsg").removeClass("required");
                        nameFlag=true;
                        }
                });
            });
    </script>
</head>
<body>
    <div style="background-color: blue;color:white;
    text-align: center;font-size: 30px" >用户登录</div>
    <p align="center">请登录</p>
    <div>
    <form name="loginForm"
    action="http://dev.test.cn/index.php/user/checkLogin"
      id="loginForm" method="post">
    <table align="center">
      <tr>
               
                <td>用户名:</td>
                <td><input type="text" name="name"
                  id="name" ><span id="nameMsg" class="required"></span></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input type="password" name="pwd"
                  id="pwd" "><span id="pwdMsg" class="required"></span></td>
            </tr>
      <tr>
            <td></td>
            <td><input id="submit" name="submit"
                type="submit" value="登录">
                <a >新用户注册</a></td>
      </tr>
    </table>
    </form>
    </div>
</body>
</html>   
   
Controller里的代码如下:
function checkName(){
      $this->load->model("user_model","",TRUE);
      $this->user_model->check_name($_POST['name']);
            
    }
model里的代码如下:
//检查用户名
    function check_name($name){
      $this->db->where($name);
      $query=$this->db->get("user");
      return $query->result();
    }
求各位高手看看,哪里有错,敬请不吝赐教!!!

baiyuxiong 发表于 2014-1-8 21:13:15

这种问题很好解决。
用chrome开发人员工具 ,F12 打开 ,打到网络标签,看一下AJAX发送和接收的数据对不对。
页: [1]
查看完整版本: Ajax为什么没反应