bootstrapvalidator的简单校验【必填校验、长度校验、是否存在校验(remote)】

需求:输入框的"供应商编码"不能为空而且不能与数据库重复,供应商名称不能为空。

解决:

1.input如下

1 <input id="ssupplierNo" name="ssupplierNo" type="text"
2                    class="form-control input-sm"
3                    value="${supplierinfo.ssupplierNo}" 供应商编码 " />

2.js函数

 1  jQuery(function() {    
 2  $('#Form').bootstrapValidator({
 3             feedbackIcons : {
 4                 valid : 'glyphicon glyphicon-ok',
 5                 invalid : 'glyphicon glyphicon-remove',
 6                 validating : 'glyphicon glyphicon-refresh'
 7             }
 8             ,
 9             fields : {
10                 ssupplierNo : {
11                     validators : {
12                         notEmpty : {
13                             message : '供应商编码不能为空'
14                         },
15                         stringLength : {
16                             max : 50,
17                             message : '不超过50个字符'
18                         }
19                         ,
20                         remote:{
21                             message:'供应商编码已经存在,请重新输入',
22                             url:'<%=request.getContextPath()%>/apps/supplierInfo.do?method=checkSupplierNo',
23                             delay:4000    /*使用延时异步调用服务端方法,4000即文本输入框静止4秒后调用服务端方法*/
24                         }
25                     }
26                 },
27             ssupplierFullName : {
28                     validators : {
29                         notEmpty : {
30                             message : '供应商名称不能为空'
31                         },
32                         stringLength : {
33                             max : 50,
34                             message : '不超过50个字符'
35                         }
36                     }
37                 },
38             }
39         });
40 }

3.供应商编码唯一性校验控制层代码如下

 1 /* 校验输入框的值是否已经存在 */
 2         @RequestMapping(params = "method=checkSupplierNo")
 3         public 
 4         @ResponseBody
 5         JSONObject  checkSupplierNo(HttpServletRequest request, ModelMap modelMap) {
 6             String supplierNo = request.getParameter("ssupplierNo");//获取输入框的值
 7             JSONObject result = new JSONObject();
 8              try{
 9                  SupplierInfoQuery query = new SupplierInfoQuery();
10                  query.setSsupplierNo(supplierNo);
11                  List supplierInfo_list =supplierInfoService.getSupplierInfosByQueryCriteria(0, Integer.MAX_VALUE, query);
12                  if(supplierInfo_list.size()>0){//如果能查到值说明重复,返回false
13                      result.put("valid", false);
14                  }else{
15                      result.put("valid", true);
16                  }
17              }
18              catch (Exception ex) {
19                 ex.printStackTrace();
20                 logger.error(ex);
21             }
22              return result;
23         }

注意事项

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

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

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

转载于:https://www.cnblogs.com/Anti-General/p/9687898.html

你可能感兴趣的:(bootstrapvalidator的简单校验【必填校验、长度校验、是否存在校验(remote)】)