jquery的ajax实现登录名的校验

来源:互联网 发布:淘宝iphone官换机骗局 编辑:程序博客网 时间:2024/06/10 03:39

使用了struts2的JSON插件



1)页面效果:


鼠标失去焦点时,页面会进行校验。

2)操作步骤:


第一步:引入插件包

第二步:在struts.xml中定义:


修改:


<package name="system"namespace="/system" extends="struts-default">


修改成


<package name="system"namespace="/system" extends="json-default">


 


struts.xml中添加:


<resultname="checkUser"type="json">


       <!--表示message的值返回页面,不再是一个json的数据结果 -->


       <paramname="root">message</param>


       <!--对象中的某个属性被json -->


       <paramname="includeProperties">message</param>


</result>


 


第三步:页面的写法


/**校验登录名是否出现重复*/


   functioncheckUser(o){


   //alert(o.value);//dom的写法


   //alert($(o).val());//jquery的写法


   var logonName = $(o).val();


   //以登录名作为查询条件,查询该登录名是否在数据库表中存在记录


   $.post("elecUserAction_checkUser.do",{"logonName":logonName},function(data){


              //如果栈顶是模型驱动的对象,取值的时候应该使用data.message的方式


              //如果栈顶是模型驱动的对象的某个属性,取值的时候应该使用data即可


                   if(data==1){


                                    $("#check").html("<fontcolor='red'>登录名不能为空</font>");


                                    o.focus();


                                    $("#BT_Submit").attr("disabled","none");


                           }


                           elseif(data==2){


                                    $("#check").html("<fontcolor='red'>登录名已经存在</font>");


                                    $(o)[0].focus();


                                    $("#BT_Submit").attr("disabled","none");


                           }


                           else{


                                    $("#check").html("<fontcolor='green'>登录名可以使用</font>");


                                    $("#BT_Submit").attr("disabled","");


                           }


   });


   }


 


第四步:在Action类的代码中定义:将String类型的message放置到栈顶:例如


public String checkUser(){


       //1:获取页面传递的登录名,以登录名作为条件,查询用户表,返回message


       String logonName = elecUser.getLogonName();


       /**


        *    如果message==1,说明登录名为空,此时不能执行保存


              如果message==2,说明登录名在数据库表中已经存在记录(list.size()>0),此时不能执行保存


              如果message==3,说明登录名在数据库表中不存在记录(list.size()==0),此时可以执行保存


        */


       String message = elecUserService.checkUserByLogonName(logonName);


       //将标识message的值放置到栈顶的对象,返回到页面上


       elecUser.setMessage(message);


       return "checkUser";


   }


 


第五步:在Service类的代码中查询message标识的值

public String checkUserByLogonName(String logonName) {        String message = "";        if(StringUtils.isNotBlank(logonName)){            String condition = " and o.logonName=?";            Object [] params = {logonName};            //查询获取用户信息            List<ElecUser> list = elecUserDao.findCollectionByConditionNoPage(condition, params, null);            if(list!=null && list.size()>0){                message = "2";            }            else{                message = "3";            }        }        else{            message = "1";        }        return message;}

 


0 0
原创粉丝点击