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:'<%=ContextPath()%>/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")
3public
4 @ResponBody
5 JSONObject checkSupplierNo(HttpServletRequest request, ModelMap modelMap) {
6 String supplierNo = Parameter("ssupplierNo");//获取输⼊框的值
7 JSONObject result = new JSONObject();
8try{
9 SupplierInfoQuery query = new SupplierInfoQuery();
10 query.tSsupplierNo(supplierNo);
11 List<SupplierInfo> supplierInfo_list =SupplierInfosByQueryCriteria(0, Integer.MAX_VALUE, query); 12if(supplierInfo_list.size()>0){//如果能查到值说明重复,返回fal
13 result.put("valid", fal);
14 }el{
15 result.put("valid", true);
16 }
17 }
18catch (Exception ex) {
19 ex.printStackTrace();
20 (ex);
21 }
22return result;
23 }
注意事项:
这⾥需要说明的是bootstrap的remote验证器需要的返回结果⼀定是json格式的数据 :
{"valid":fal} //表⽰不合法,验证不通过
{"valid":true} //表⽰合法,验证通过
如果返回任何其他的值,页⾯验证将获取不到验证结果导致⽆法验证。