基于jQuery实现的Ajax 验证用户名唯一性
Posted CANYON
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于jQuery实现的Ajax 验证用户名唯一性相关的知识,希望对你有一定的参考价值。
JSP部分代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <%@include file="/common/header.jsp"%> <title>用户管理</title> <script type="text/javascript"> function doVerify(){ //获取界面的账号 var account = $("#account").val(); //获取账号后的提示信息文本 var accountText = document.getElementById("accountText"); //如果账号输入不为空,执行该方法 if(account !=""){ $.ajax({ url:"${basePath}nsfw/userAction_verifyAccout.action",//后台查询验证的方法 data:{"user.account": account},//携带的参数 type: "post", success: function(msg){ //根据后台返回前台的msg给提示信息加HTML if("true" !=msg){ // 账号已经存在 accountText.innerHTML = "<font color=\'red\'>抱歉,"+account+"已被注册,请更换!</font>" } else{ // 账号不存在 accountText.innerHTML = "<font color=\'green\'>恭喜,"+account+"可以注册!</font>" } } }); } } </script> </head> <body class="rightBody"> <tr> <td class="tdBg" width="200px">帐号:</td> <td><s:textfield name="user.account" id="account" onchange="doVerify()"/> <span id="accountText"></span> </td> </tr> </body>
后台代码:
action层代码:
// 校验用户名唯一性 public void verifyAccout() throws IOException { if (user !=null && StringUtils.isNotBlank(user.getAccount())) { List<User> list = userService.findObjectByAccountAndId(user.getId(), user.getAccount()); String resultString = "true"; if (list!=null && list.size()>0) { //说明账号存在 resultString = "false"; } //输出到界面 HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html"); ServletOutputStream outputStream = response.getOutputStream(); outputStream.write(resultString.getBytes()); outputStream.close(); } }
Service层代码:
public List<User> findObjectByAccountAndId(String id, String account) { return userDAO.findObjectByAccountAndId(id, account); }
DAO层代码:
public class UserDAOImpl extends BaseDaoImpl<User> implements UserDAO { /** * 校验账号唯一性 */ @Override public List<User> findObjectByAccountAndId(String id, String account) { StringBuilder hqlStr = new StringBuilder("FROM User t WHERE t.account = ?"); if (StringUtils.isNotBlank(id)) { hqlStr.append(" AND t.id=?"); } Query query = getSession().createQuery(hqlStr.toString()); query.setParameter(0, account); if (StringUtils.isNotBlank(id)) { query.setParameter(1, id); } return query.list(); }
效果图:
以上是关于基于jQuery实现的Ajax 验证用户名唯一性的主要内容,如果未能解决你的问题,请参考以下文章
JQuery Validate插件如何自定义验证方法(结合ajax实现数据库的查重)
如何使用 jQuery ajax() 方法异步提交 验证用户登录