表单验证通常我一般有两种选择一种是 Bootstrap 的bootstrap-validator,另一种是 jquery 的jquery-validate。
如果表单使用的是 Bootstrap 的可以直接使用 bootstrap-validator,不仅使用方便,而且样式也漂亮。
但是通常有时候没有使用 Bootstrap,或者我们想自定义错误提示样式,可以使用 jquery-validate,本文也是介绍这个。
先上动态效果图
下载地址:https://github.com/saysky/jQuery-Validate-Example
jquery核心文件和jquery.validate.js
下载地址,点此
HTML
效果图
CSS
通过审查元素我们发现,表单验证未通过会addClass("error),通过会addClass("valid"),为了好看我们自定义一点样式
JS
这里提一下这个自定义方法 remote,如果返回值为 false 则触发 error(显示错误信息),返回值为 true 触发 valid
Java
1、基本验证
2、通过回调函数,ajax 验证用户是否存在
注意
通常用户名,密码,确认密码,QQ号码不会有样式,这是因为我这里修改了源码(没有找到默认设置可以修改其他节点样式),索性直接在源码里加了两行代码。
分别是在 901 行添加如下代码
969行添加如下代码
参考:http://www.runoob.com/jquery/jquery-plugin-validate.html
本文地址:https://liuyanzhao.com/7544.html
如果表单使用的是 Bootstrap 的可以直接使用 bootstrap-validator,不仅使用方便,而且样式也漂亮。
但是通常有时候没有使用 Bootstrap,或者我们想自定义错误提示样式,可以使用 jquery-validate,本文也是介绍这个。
先上动态效果图
下载地址:https://github.com/saysky/jQuery-Validate-Example
一、引入必备文件
jquery核心文件和jquery.validate.js
- <script th:src="@{/common/jquery/jquery.min.js}"></script>
- <script type="text/javascript" th:src="@{/common/jquery-validate/jquery.validate.js}"></script>
下载地址,点此
二、开始使用
HTML
- <form name="registerForm" id="registerForm" action="#" method="post">
- <p>
- <label for="username"><strong>用户名</strong><br/>
- <input type="text" name="username" id="username" class="input" value="" size="20"/>
- </label>
- </p>
- <br>
- <p>
- <label for="password"><strong>密码</strong><br/>
- <input type="password" name="password" id="password" class="input" value="" size="25"/>
- </label>
- </p>
- <br>
- <p>
- <label for="password"><strong>确认密码</strong><br/>
- <input type="password" name="confirm_password" id="confirm_password" class="input" value="" size="25"/>
- </label>
- </p>
- <br>
- <p>
- <label for="qq"><strong>QQ号码</strong><br/>
- <input type="text" name="qq" id="qq" class="input" value="" size="25"/>
- </label>
- </p>
- <br/>
- <p class="submit">
- <input type="submit" name="submit" class="button button-primary button-large" value="注册"/>
- </p>
- </form>
效果图
CSS
- input.error {
- border: 1px solid #CE5542;
- }
- label.error {
- color: #CE5542;
- }
- input.valid {
- border: 1px solid #00a65a;
- }
- label.valid {
- color: #00a65a;
- }
通过审查元素我们发现,表单验证未通过会addClass("error),通过会addClass("valid"),为了好看我们自定义一点样式
JS
- $(function () {
- //让当前表单调用validate方法,实现表单验证功能
- $("#registerForm").validate({
- success:"valid",
- submitHandler:function() {
- alert("欢迎加入我们!")
- },
- rules: { //配置验证规则,key就是被验证的dom对象,value就是调用验证的方法(也是json格式)
- username: {
- required: true, //必填。如果验证方法不需要参数,则配置为true
- rangelength: [6, 12],
- remote: {
- url: "/ajax_check_username", //后台处理程序
- type: "get", //数据发送方式
- dataType: "json", //接受数据格式
- data: { //要传递的数据
- username: function () {
- return $("#username").val();
- }
- }
- },
- },
- password: {
- required: true,
- rangelength: [6, 20]
- },
- confirm_password: {
- required: true,
- equalTo: '#password'
- },
- qq: {
- required: true,
- number: true,
- rangelength: [5, 10]
- }
- },
- messages: {
- username: {
- required: "请输入用户名,用于登录",
- rangelength: $.validator.format("用户名长度在必须为:{0}-{1}之间"),
- remote: "该用户名已存在!"
- },
- password: {
- required: "请输入密码",
- rangelength: $.validator.format("密码长度必须为:{0}-{1}之间")
- },
- confirm_password: {
- required: "请再次输入密码",
- equalTo: "两次密码必须一致"
- },
- qq: {
- required: "请输入qq号,用于获取昵称和头像",
- number: "只允许输入数字",
- rangelength: "请检查qq号输入是否正确"
- }
- }
- });
- });
这里提一下这个自定义方法 remote,如果返回值为 false 则触发 error(显示错误信息),返回值为 true 触发 valid
Java
- @GetMapping(value = "/ajax_check_username")
- @ResponseBody
- public Boolean ajaxCheckUsername(String username) {
- //用户名不存在,返回true
- User user = userService.getUserByUsername(username);
- if(user == null) {
- return true;
- }
- //用户名存在,返回false
- return false;
- }
效果图
1、基本验证
2、通过回调函数,ajax 验证用户是否存在
注意
通常用户名,密码,确认密码,QQ号码不会有样式,这是因为我这里修改了源码(没有找到默认设置可以修改其他节点样式),索性直接在源码里加了两行代码。
分别是在 901 行添加如下代码
$("#" + elementID).parent("label").css("color", "#CE5542");
969行添加如下代码
$("#" + elementID).parent("label").css("color", "#00a65a");
参考:http://www.runoob.com/jquery/jquery-plugin-validate.html
本文地址:https://liuyanzhao.com/7544.html
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏