使用bootstrap validator的remote验证代码经验分享(推荐)


Posted in Javascript onSeptember 21, 2016

这里需要说一下,bootstrapvalidator的帮助文档写的比较简单,对于remote验证器的说明更是如此,在经历多方测试之后才明白如何使用这个验证器。

一个典型的ajax验证代码如下:

使用bootstrap validator的remote验证代码经验分享(推荐)

服务端验证代码(使用spring mvc)如下:

/*
* 返回String类型的结果
* 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式为{"valid",true})
*/
@RequestMapping(value = "/checkNameExistsMethod1", produces = "application/json;charset=UTF-8")
public @ResponseBody
String checkNameValidMethod1(@RequestParam String name) {
boolean result = true;
List<Employee> lstEmployees = employeeService.getAllEmployees();
for (Employee employee : lstEmployees) {
if (employee.getName().equals(name)) {
result = false;
break;
}
}
Map<String, Boolean> map = new HashMap<>();
map.put("valid", result);
ObjectMapper mapper = new ObjectMapper();
String resultString = "";
try {
resultString = mapper.writeValueAsString(map);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return resultString;
}

这里需要说明的是bootstrap的remote验证器需要的返回结果一定是json格式的数据 :

{"valid":false} //表示不合法,验证不通过
{"valid":true} //表示合法,验证通过

如果返回任何其他的值,页面验证将获取不到验证结果导致无法验证。

附一段完整的远程remote验证的代码加说明:

$(function(){/* 文档加载,执行一个函数*/
$('#defaultForm').bootstrapValidator({
message: 'This value is not valid',
feedbackIcons: {/*input状态样式图片*/
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {/*验证:规则*/
username: {//验证input项:验证规则
message: 'The username is not valid',
validators: {
notEmpty: {//非空验证:提示消息
message: '用户名不能为空'
},
stringLength: {
min: 6,
max: 30,
message: '用户名长度必须在6到30之间'
},
threshold : 6 , //有6字符以上才发送ajax请求,(input中输入一个字符,插件会向服务器发送一次,设置限制,6字符以上才开始)
remote: {//ajax验证。server result:{"valid",true or false} 向服务发送当前input name值,获得一个json数据。例表示正确:{"valid",true} 
url: 'exist2.do',//验证地址
message: '用户已存在',//提示消息
delay : 2000,//每输入一个字符,就发ajax请求,服务器压力还是太大,设置2秒发送一次ajax(默认输入一个字符,提交一次,服务器压力太大)
type: 'POST'//请求方式
/**自定义提交数据,默认值提交当前input value
* data: function(validator) {
return {
password: $('[name="passwordNameAttributeInYourForm"]').val(),
whatever: $('[name="whateverNameAttributeInYourForm"]').val()
};
}
*/
},
regexp: {
regexp: /^[a-zA-Z0-9_\.]+$/,
message: '用户名由数字字母下划线和.组成'
}
}
},
password: {
message:'密码无效',
validators: {
notEmpty: {
message: '密码不能为空'
},
stringLength: {
min: 6,
max: 30,
message: '用户名长度必须在6到30之间'
},
identical: {//相同
field: 'password', //需要进行比较的input name值
message: '两次密码不一致'
},
different: {//不能和用户名相同
field: 'username',//需要进行比较的input name值
message: '不能和用户名相同'
},
regexp: {
regexp: /^[a-zA-Z0-9_\.]+$/,
message: 'The username can only consist of alphabetical, number, dot and underscore'
}
}
},
repassword: {
message: '密码无效',
validators: {
notEmpty: {
message: '用户名不能为空'
},
stringLength: {
min: 6,
max: 30,
message: '用户名长度必须在6到30之间'
},
identical: {//相同
field: 'password',
message: '两次密码不一致'
},
different: {//不能和用户名相同
field: 'username',
message: '不能和用户名相同'
},
regexp: {//匹配规则
regexp: /^[a-zA-Z0-9_\.]+$/,
message: 'The username can only consist of alphabetical, number, dot and underscore'
}
}
},
email: {
validators: {
notEmpty: {
message: '邮件不能为空'
},
emailAddress: {
message: '请输入正确的邮件地址如:123@qq.com'
}
}
},
phone: {
message: 'The phone is not valid',
validators: {
notEmpty: {
message: '手机号码不能为空'
},
stringLength: {
min: 11,
max: 11,
message: '请输入11位手机号码'
},
regexp: {
regexp: /^1[3|5|8]{1}[0-9]{9}$/,
message: '请输入正确的手机号码'
}
}
},
invite: {
message: '邀请码',
validators: {
notEmpty: {
message: '邀请码不能为空'
},
stringLength: {
min: 8,
max: 8,
message: '请输入正确长度的邀请码'
},
regexp: {
regexp: /^[\w]{8}$/,
message: '请输入正确的邀请码(包含数字字母)'
}
}
},
}
})
.on('success.form.bv', function(e) {//点击提交之后
// Prevent form submission
e.preventDefault();
// Get the form instance
var $form = $(e.target);
// Get the BootstrapValidator instance
var bv = $form.data('bootstrapValidator');
// Use Ajax to submit form data 提交至form标签中的action,result自定义
$.post($form.attr('action'), $form.serialize(), function(result) {
//do something...
});
});
});

以上所述是小编给大家介绍的使用bootstrap validator的remote验证经验分享(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS动画效果代码3
Apr 03 Javascript
JavaScript 事件冒泡简介及应用
Jan 11 Javascript
ExtJS DOM元素操作经验分享
Aug 28 Javascript
表单验证正则表达式实例代码详解
Nov 09 Javascript
Angular2从搭建环境到开发步骤详解
Oct 17 Javascript
javascript设置文本框光标的方法实例小结
Nov 04 Javascript
jquery获取下拉框中的循环值
Feb 08 Javascript
js实现一个猜数字游戏
Mar 31 Javascript
微信小程序日历组件calendar详解及实例
Jun 08 Javascript
使用 jQuery 实现表单验证功能
Jul 05 jQuery
JavaScript实现省市区三级联动
Feb 13 Javascript
JS实现数组去重的11种方法总结
Apr 04 Javascript
D3.js实现柱状图的方法详解
Sep 21 #Javascript
AngularJS ng-style中使用filter
Sep 21 #Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
Sep 21 #Javascript
JS实现简单的tab切换选项卡效果
Sep 21 #Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
Sep 21 #Javascript
JS 获取HTML标签内的子节点的方法
Sep 21 #Javascript
浅谈JS使用[ ]来访问对象属性
Sep 21 #Javascript
You might like
BBS(php &amp; mysql)完整版(八)
2006/10/09 PHP
PHP 递归效率分析
2009/11/24 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
Javascript hasOwnProperty 方法 &amp; in 关键字
2008/11/26 Javascript
jquery json 实例代码
2010/12/02 Javascript
jquery获取当前点击对象的value方法
2014/02/28 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
js实现一个简易计算器
2020/03/30 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
Python中获取对象信息的方法
2015/04/27 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
python实现简单的五子棋游戏
2020/09/01 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
室内设计专业个人的自我评价
2013/12/18 职场文书
办公室打字员岗位职责
2014/04/16 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
中学音乐课教学反思
2016/02/18 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
Java数组详细介绍及相关工具类
2022/04/14 Java/Android