需求:输入框的"供应商编码"不能为空而且不能与数据库重复,供应商名称不能为空。
解决:
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> 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} //表示合法,验证通过
如果返回任何其他的值,页面验证将获取不到验证结果导致无法验证。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?