BootstrapValidator验证用户名已存在(ajax)


Posted in Javascript onNovember 08, 2019

Java web项目:bootstrap实现注册页面,mvc模式联合mysql数据库检查用户名的唯一性。

一、实现效果:

BootstrapValidator验证用户名已存在(ajax)

重置这里有bug,bootstrapValidator验证不能重置,待解决。

二、代码准备:

引入bootstrap,bootstrapValidator和jquery。

<link rel="stylesheet" href="<%=request.getContextPath() %>/css/bootstrap.min.css" rel="external nofollow" />
<link rel="stylesheet" href="<%=request.getContextPath() %>/css/bootstrapValidator.min.css" rel="external nofollow" />
<script src="<%=request.getContextPath() %>/js/jquery.min.js"></script>
<script src="<%=request.getContextPath() %>/js/bootstrap.min.js"></script> 
<script src="<%=request.getContextPath() %>/js/bootstrapValidator.min.js"></script>

三、部分代码:

register.jsp注册部分代码。 

<form id="registerForm" action="<%=request.getContextPath() %>/UserServlet" method="post">
 <input type="hidden" name="method" value="register"/>
 <div class="form-group">
  <label>用户名</label>
  <input type="text" class="form-control" name="userName" placeholder="用户名由2-12位字符组成" />
 </div>

 <div class="form-group">
  <label>邮箱</label>
  <input type="text" class="form-control" name="userEmail" placeholder="邮箱" />
 </div>

 <div class="form-group">
  <label>密码</label>
  <input type="password" class="form-control" name="userPassword" placeholder="密码由6-10位字母数字组成" />
 </div>

 <div class="form-group">
  <label>确认密码</label>
  <input type="password" class="form-control" name="confirmUserPassword" placeholder="再次输入密码" />
 </div>

 <div class="form-group">
  <button type="submit" class="btn btn-primary">注册</button>
  <input type="reset" class="btn btn-primary" value="重置">
 </div>
</form>

利用bootstrapValidator表单验证代码。 ajax部分有详细注释

<script type="text/javascript">
 $(function() {
  $('#registerForm').bootstrapValidator({
   message: 'This value is not valid',
   feedbackIcons: {
    valid: 'glyphicon glyphicon-ok',
    invalid: 'glyphicon glyphicon-remove',
    validating: 'glyphicon glyphicon-refresh'
   },
   fields: {
    userName: {
     message: 'The username is not valid',
     validators: {
      notEmpty: {
       message: '用户名不能为空'
      },
      stringLength: {
       min: 2,
       max: 12,
       message: '用户名由2-12位字符组成'
      },
      threshold: 2,//有2字符以上才发送ajax请求
      remote: {//ajax验证。server result:{"valid",true or false} 
       url: "/ImageShare/UserServlet",
       message: '用户名已存在,请重新输入',
       delay: 1000,//ajax刷新的时间是1秒一次
       type: 'POST',
       //自定义提交数据,默认值提交当前input value
       data: function(validator) {
       return {
        userName : $("input[name=userName]").val(),
         method : "checkUserName"//UserServlet判断调用方法关键字。
        };
       }
      }
     }
    },
    userEmail: {
     validators: {
      notEmpty: {
       message: '邮箱不能为空'
      },
      emailAddress: {
       message: '输入不是有效的电子邮件地址'
      }
     }
    },
    userPassword: {
     validators: {
      notEmpty: {
       message: '密码不能为空'
      },
      stringLength: {
       min: 6,
       max: 10,
       message: '密码由6-10位字符组成'
      },
      identical: {
       field: 'confirmUserPassword',
       message: '密码输入不一致'
      }
     }
    },
    confirmUserPassword: {
     validators: {
      notEmpty: {
       message: '密码不能为空'
      },
      stringLength: {
       min: 6,
       max: 10,
       message: '密码由6-10位字符组成'
      },
      identical: {
       field: 'userPassword',
       message: '密码输入不一致'
      }
     }
    }
   }
  });
 });
</script>

UserServlet.java检查用户名唯一性部分代码。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 // TODO Auto-generated method stub
 request.setCharacterEncoding("UTF-8");
 //0、获取method判断执行操作
 String method = request.getParameter("method");
 if ("checkUserName".equals(method)) {
 //验证用户名是否已存在
 checkUserName(request,response);
 }
}

//根据用户名称查询,检查用户名称的唯一性(用户注册)
public void checkUserName(HttpServletRequest request, HttpServletResponse response) throws IOException{
 response.setCharacterEncoding("UTF-8");
 //返回json数据,格式为{"valid",true} 表示合法,验证通过。{"valid":false} 表示不合法,验证不通过
 String jsonResult = "";
 String userName = request.getParameter("userName");
 //去数据进行唯一性确认
 if (userName!=null) {
 //服务层service调用数据库访问层dao中的searchUserName方法。
 boolean b = UserServiceImpl.searchUserName(userName);
 if (b) {
 //如果名称存在
 jsonResult = "{\"valid\":false}";
 }else{
 //如果该名称不存在
 jsonResult = "{\"valid\":true}";
 }
 } else {
 jsonResult = "{\"valid\":false}";
 }
 //response把jsonResult打到前台
 response.getWriter().write(jsonResult);
}

四、总结:

1.利用bootstrapValidator的ajax表单验证用户名已存在关键是自定义提交的数据。

2.将当前input的value值和判断操作方法的method关键字提交

3.注意当server必需返回形如:{“valid”,true or false} 的json数据格式

4.servlet通过 response.getWriter().write(jsonResult) 返回响应的内容jsonResult到前台页面。

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是关于本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
IE与firefox之jquery用法区别
Oct 03 Javascript
Ext对基本类型的扩展 ext,extjs,format
Dec 25 Javascript
JQuery判断HTML元素是否存在的两种解决方法
Dec 26 Javascript
基于javascript实现判断移动终端浏览器版本信息
Dec 09 Javascript
javascript实现的图片切割多块效果实例
May 07 Javascript
Bootstrap树形组件jqTree的简单封装
Jan 25 Javascript
AngularJS入门教程之双向绑定详解
Aug 18 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
webpack之引入图片的实现及问题
Oct 08 Javascript
说说Vue.js中的functional函数化组件的使用
Feb 12 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
Nov 09 Javascript
微信小程序组件生命周期的踩坑记录
Mar 03 Javascript
微信小程序在text文本实现多种字体样式
Nov 08 #Javascript
浅谈vuex的基本用法和mapaction传值问题
Nov 08 #Javascript
微信小程序select下拉框实现源码
Nov 08 #Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 #Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 #Javascript
vue中在vuex的actions中请求数据实例
Nov 08 #Javascript
vue 组件内获取actions的response方式
Nov 08 #Javascript
You might like
PHP 地址栏信息的获取代码
2009/01/07 PHP
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PHP中“=&gt;
2019/03/01 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
利用Python学习RabbitMQ消息队列
2015/11/30 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
对Django外键关系的描述
2019/07/26 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
教师自荐信范文
2013/12/09 职场文书
少儿节目主持串词
2014/04/02 职场文书
职位说明书范文
2014/05/07 职场文书
党员查摆剖析材料
2014/10/10 职场文书
个人自查自纠材料
2014/10/14 职场文书