一、在页面中国保留原来的值,跟修改之后的做比较
1、要校验的字段
<div class="form-group"> <div class="row"> <div class="col-sm-12"> <label class="col-sm-3 control-label">分类名称</label> <div class="col-sm-6"> <input type="text" name="name" id="name" value="${courseClassify.name}" class="form-control" maxlength="200" placeholder="请输入" /> </div> </div> </div> </div>2、原来的值
<input type="hidden" id="oldName" value="${courseClassify.name}">3、使用validate进行校验
$("#inputForm").validate({ rules: { name:{ remote: { type: "get", dataType: "json", url: "${base}/admin/course_classify/check_name.jhtml", data: { name: function () { return $("#name").val(); }, oldname:function () { return $("#oldName").attr(); }, } } } }, messages: { name:{ remote: "该分类名称已经存在" }} } );4、controller处理
/** * 检查分类名称是否存在 */ @RequestMapping(value = "/check_name", method = {RequestMethod.GET}) @ResponseBody public boolean checkAccount(String name,String oldname) { if(oldname != null){ if (StringUtils.isEmpty(name)) { return true; } if (StringUtils.isEmpty(oldname)) { return true; } if (name.equals(oldname)) { return true; } } Long count = this.courseClassifyService.count(Paramap.create().put("name", name)); if (null != count && count > 0) { return false; } else { return true; } }二、在前端直接把id值携带到controller层,在根据id排除数据本身
1、验证的字段
<div class="form-group"> <div class="row"> <div class="col-sm-12"> <label class="col-sm-3 control-label">手机号</label> <div class="col-sm-6"> <input type="text" name="phone" id="phone" data-id="${appUser.id}" value="${appUser.phone}" class="form-control" required maxlength="200" oninput = "value=value.replace(/1[34578]\\d{9}/g,'')"/> </div> </div> </div> </div>2、获取id
<input type="hidden" value="${appUser.id}" name="id" id="userId"/>3、ajax传值
rules: { phone: { remote: { type: "get", dataType: "json", url: "${base}/admin/app_user/check_phone.jhtml", data: { phone: function () { return $("#phone").val(); }, userId: function () { return $("#userId").val(); }, } } } }, messages: { phone: { required: "请输入账号", maxlength: "账号最多11个字符", remote: "账号已经存在" } }4、controller层处理
/** * 检查手机号是否存在 */ @RequestMapping(value = "/check_phone", method = {RequestMethod.GET}) @ResponseBody public boolean checkAccount(String phone,Long userId) { Long count=null; if (userId != null){//编辑 count = this.appUserService.countAppUser(phone,userId); }else if(userId==null) { count = this.appUserService.count(Paramap.create().put("phone", phone)); } if (null != count && count > 0) { return false; } else { return true; } }5、除去数据本身,来进行比较
SELECT COUNT(*) FROM t_app_user WHERE phone=#{phone} AND id NOT IN (#{id})