struts2+jquery_validate控件验证

struts2+jquery_validate控件验证,新增用户
描述:其中的一些css及js文件不需要引入,为了实现验证功能只需引入jquery-1.11.0.min.js、jquery.validate.js、useradd.js三个文件,
这里包括了jquery_validate控件的基本用法、自定义验证方法及验证成功后的逻辑,自认为已经够用了,希望和大家分享一下   


新增页面user_add.jsp文件代码如下:jsp中的一些信息无用,主要有用的就是表单元素,请有选择性的使用,这里我就不删减了。


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>管理</title>
<link href="<%=basePath %>statics/resources/css/manage.css" rel="stylesheet" type="text/css" />
<link href="<%=basePath %>statics/js/jquerylib/impromptu/style/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<%=basePath %>page/common/MD5.js"></script>
<script src="<%=basePath %>statics/js/jquerylib/jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="<%=basePath %>statics/js/plugins/tab/app.tab.js" type="text/javascript"></script>
<script src="<%=basePath %>statics/js/jquerylib/jqueryui/jquery-ui-1.10.4.custom.min.js" type="text/javascript"></script>
<script src="<%=basePath %>statics/js/jquerylib/impromptu/jquery-impromptu.min.js" type="text/javascript"></script>
<script type="text/javascript" src="<%=basePath %>statics/js/plugins/validate/jquery.validate.js"></script>
<script type="text/javascript" src="<%=basePath %>statics/js/plugins/validate/useradd.js"></script>
<script type="text/javascript">

function demo1(){
var appTab = new AppTab();
appTab.init("tab1");
}

//将密码加密
function md5Code() {
       var passValue=document.getElementById("password").value;
    
       passValue=hex_md5(passValue);
       document.getElementById("password").value=passValue;
      
    }
/**
*新增成功提示
*/
function successPrompt(){
var editId = document.getElementById("userId").value;
var txt = '用户新增成功!<br /><div id="tishi" class="button_area paddingTop20"><a class="button_style1" href="add" >继续新增</a><a class="button_style2" href="${pageContext.request.contextPath}/edit?editId='+editId+'">完善该用户信息</a><a class="button_style3" href="tapUserInfoList">返回</a></div>';
$.prompt("",txt,{buttons:{},alertType:'sucess'});

}

</script>
</head>
<body>
<div class="right" id="tab1">
<div class="line_1"></div>
<div class="line_2"></div>
<div class="tab">
<div class="tab_l tab_item "><a href="${pageContext.request.contextPath}/tapUserInfoList">用户查询</a></div>
<div class="tab_r tab_item tab_hover"><a href="${pageContext.request.contextPath}/add">用户新增</a></div>
<div class="clear"></div>
</div>
      
        <!--页签2内容开始{-->
        <div class="tab_content ">
        <!---用户新增开始---->
<form id="insertTapInfoUser" action="<%=basePath%>/insertTapInfoUser" method="post" style="clear:both;">
<input id="userId" name="userId" value="${userId}" hidden="true"  style="display: none">
<table width="99%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="20%" align="right" class="add_left"><img src="<%=basePath %>statics/resources/images/add_photo.jpg" width="107" height="107" /></td>
    <td width="80%"><input id="upLoadAddress" type="file" name="file" />
      <input type="submit" name="Submit" value="提交" class="add_photo_btn" /></td>
    </tr>
</table>
<table width="99%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="20%" align="right" class="add_left">用户名称:</td>
    <td width="80%"><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="60%"><input id="userName" name="userName"  type="text" class="autoinput input " value=""  placeholder="请输入用户名称"/></td>
        <td width="40%"><div id="userNameMessage" class=""></div></td>
        </tr>
    </table></td>
    </tr>
  <tr>
    <td align="right" class="add_left">用户类型:</td>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="60%"><select  id="userType" name="userType"  class="autoselect input" >
          <option value="">请选择...</option>
          <c:forEach items="${userTypes}" var="userType">
             <option value="${userType.codeId }">${userType.codeName }</option>          
          </c:forEach>     
        </select></td>
        <td width="40%"><div id="userTypeMessage" class=""></div></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td align="right" class="add_left">用户级别:</td>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="60%"><select id="userLevel" name="userLevel"  class="autoselect input" >
          <option value="">请选择...</option>
          <c:forEach items="${userLevels}" var="userLevel">
             <option value="${userLevel.codeId }">${userLevel.codeName }</option>          
          </c:forEach> 
        </select></td>
        <td width="40%"><div id="userLevelMessage" class=""></div></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td align="right" class="add_left">登录密码:</td>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="60%"><input id="password" name="password" type="password" class="autoinput input" value="" /></td>
        <td width="40%"><div id="passwordMessage" class=""></div></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td align="right" class="add_left">密码验证:</td>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="60%"><input id="passwordCheck" name="passwordCheck"  type="password" class="autoinput input" value="" /></td>
        <td width="40%"><div id="passwordCheckMessage"  class=""></div></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td align="right" class="add_left">E-mail:</td>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="60%"><input id="email" name="email" type="text" class="autoinput input" value="" placeholder="请输入常用E-mail地址,便于找回密码"/></td>
        <td width="40%"><div id="emailMessage" class=""></div></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td align="right" class="add_left">&nbsp;</td>
    <td><div class="add_btn_div"><input class="add_submit" type="submit" value="提交"/></div><div class="add_btn_div"><input id="reset" type="button" value="重置" class="add_reset" onClick="" /></div><div class="clear"></div></td>
  </tr>
</table>
</form>

<!---用户新增结束---->
        </div>
        <!--}页签2内容结束-->
   </div>

</body>










useradd.js文件代码如下:


$().ready(function() {
demo1();
//新增方法校验密码强度
jQuery.validator.addMethod("password", function(value, element) {   
        return this.optional(element) || /^[a-zA-Z0-9]{6,14}$/.test(value) ;    }, "用户名应包含6-14个数字、字母");  
       
var v = $("#insertTapInfoUser").validate({
//验证通过后执行的逻辑
        submitHandler:function(form){             
            var userType = $("#userType").val();   
if(userType =="0") {
userType = "超级管理员";
}       
if(userType =="1") {
userType = "个人注册用户";

if(userType =="2") {
userType = "企业用户";

if(userType =="3") {
userType = "虚拟企业用户";

if(userType =="4") {
userType = "测试用户";
}   
if(userType =="5") {
userType = "非注册用户";
}    
var txt = '<br/></br></br>用户名称:'+$("#userName").val()+'<br/></br></br>密码安全:<img src="statics/resources/images/password_pro.png" width="195" height="14" /></br></br><br/>用户类型:'+userType+'</br></br><br/>登录邮箱:'+$("#email").val()+'</br></br></br></br></br></br>';
var title = '<div class="kindly_tip"></div>';
$.prompt(title,txt,{
buttons:{是:true,否:false},
submit:function(v,m,f){
if(v){   
$.ImpromptuClose();
md5Code();
           $.ajax({
               type: "POST",
               url:"${pageContext.request.contextPath}/insertTapInfoUser",
               data:$('#insertTapInfoUser').serialize(),// 你的formid
               async: false,
               error: function(request) {
                   alert("Connection error");
               },
               success: function(data) {                
                document.getElementById("userId").value= data;
                 successPrompt();
                
               }
           });

} else {
$.ImpromptuClose();
}
}
});
        },
     //每个表单元素验证通过后,在后面的div标签中添加class属性
     success:function(div){
         div.addClass("add_tip_ok");         
     },
     //设置错误信息显示的位置
     errorPlacement: function(error, element) {
         error.appendTo(element.parent().next());         
     },
  //表单元素验证规则
  rules: {
   userName: {
    required:true,
    remote:{
                    url: "isUserNameUnique.action",
                    type: "post",
                    dataType: 'json',
                    data: {
                        'userName': function(){
    return $('#userName').val();
    }                        
                    }
    }
   },
  
   userType: "required",
   userLevel: "required",
   email: {
    required: true,
    email: true
   },
   password: {
    required: true,
    password:true   
   },
   passwordCheck: {
    required: true,
    password:true,
    equalTo: "#password"
   }
  },
  //验证失败后显示的信息
  messages: {
   userName:{
 required:"<font color=red>请输入用户名称</font>",
 remote:"<font color=red>用户名已经存在</font>"
   },
   userType: "<font color=red>请选择用户类型</font>",
   userLevel: "<font color=red>请选择用户级别</font>",
   email: {
    required: "<font color=red>请输入E-mail地址</font>",
    email: "<font color=red>请输入常用E-mail地址,便于找回密码</font>"
   },
   password: {
    required: "<font color=red>请输入密码</font>",
    password:"<font color=red>密码为6~14位数字或字母组合</font>"   
   },
   passwordCheck: {
    required: "<font color=red>请输入确认密码</font>",
    password:"<font color=red>确认密码为6~14位数字或字母组合</font>",
    equalTo: "<font color=red>两次输入密码不一致</font>"
   }
  }  


    });
//清空输入框内容
$("#reset").click(function() {
        v.resetForm();
        $('.input').val("");
$("#userName").focus();
    });
 
});
 


后台验证用户是否已经注册,代码如下:


/**
* 验证用户名是否唯一
* @return
* @throws Exception
*/
public void isUserNameUnique() throws Exception {

String flag = "true";
TapInfoUser tapInfoUserCheck = new TapInfoUser();
System.out.println("userName:" + request.getParameter("userName"));
tapInfoUserCheck.setUserName(request.getParameter("userName"));
tapInfoUser = tapInfoUserService.searchTapInofUserSelective(tapInfoUserCheck);
if (tapInfoUser != null) {

flag = "false"; //用户名已存在
}
response.getWriter().print(flag);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值