博主分享免费Java教学视频,B站账号:Java刘哥
在使用 BootstrapValidator 做前台表单验证的时候,在验证用户名是否存在的时候,一直无效,主要是两个问题。
1、传参
传参不能再 URL 上传参
即 url: '/ajax/checkUsername/'+$("#username").val(), 这种写法是不可以的
其实系统会默认将该字段的值传入后台
所以这样就行
后台代码
data : '',//这里默认会传递该验证字段的值到后端如果要传其他参数也可以使用 function 方法
data:{ username:function(){return $("#username").val()}, },2、JSON 返回格式 后台返回给前台的 JSON 格式必须是
{ valid:true或false; }之前一直返回 true 和 false 是不行的。 最终代码如下 前台代码
- username: {
- message: '用户名不合法',
- validators: {
- notEmpty: {
- message: '用户名不能为空'
- },
- stringLength: {
- min: 4,
- max: 20,
- message: '用户名为4到20个字符'
- },
- regexp: {
- regexp: /^[a-zA-Z0-9_.@]+$/,
- message: '用户名只能由字母、数字和下划线组成'
- },
- remote: {
- type:"POST",
- message: '用户名已经存在',
- url: '/ajax/checkUsername',
- data : '',//这里默认会传递该验证字段的值到后端,
- delay: 2000,//每输入一个字符,就发ajax请求,服务器压力还是太大,设置2秒发送一次ajax(默认输入一个字符,提交一次,服务器压力太大)
- }
- }
- @PostMapping("/ajax/checkUsername")
- @ResponseBody
- public String checkUsername(String username) {
- HashMap<String,Boolean> hashMap = new HashMap();
- User user = userService.getUserByUsername(username);
- //可用
- if (user == null) {
- hashMap.put("valid",true);
- } else {
- hashMap.put("valid",false);
- }
- return JSON.toJSONString(hashMap);
- }
- 微信
- 交流学习,有偿服务
- 博客/Java交流群
- 资源分享,问题解决,技术交流。群号:590480292
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏