jeecg_scott 发表于 2014-1-11 09:19:28

JEECG 通用表单字段重复校验实现

目的:实现通用表单字段重复校验
例如:部门管理模块,部门名称重复校验      <input name="departname" class="inputxt" value="${depart.departname }" validType="t_s_depart,departname,id" datatype="s3-10">
1)代码配置      给input标签,增加validType属性,格式如:t_s_depart,departname,id 即(数据表名称、对应的数据库字段、业务实体的隐藏域主键的Id属性)2)消息提示方式,两种方式.提示弹出层:如下所示:给t:formvalid增加tiptype="1" 属性      <t:formvalid formid="formobj" dialog="true" usePlugin="password" layout="table" tiptype="1"action="cgFormHeadController.do?save">.提示信息在文本框后面提示,不需要给t:formvalid 增加任何属性。
备注:次文件为当时做重复校验的第一手文档,未做任何修改。 验证重复类jeecg.system.controller.core.DuplicateCheckAction     /**   * 校验数据是否在系统中是否存在   * @return   */    @RequestMapping(params = "doDuplicateCheck")    @ResponseBody    public AjaxJsondoDuplicateCheck(DuplicateCheckPage duplicateCheckPage, HttpServletRequestrequest) {       AjaxJson j = new AjaxJson();      Long num = null;          //判读是修改还是添加    if(StringUtils.isNotBlank(duplicateCheckPage.getRowObid())){            //.编辑页面校验            String sql = "SELECT count(*) FROM "+duplicateCheckPage.getTableName()                        +" WHERE "+duplicateCheckPage.getFieldName()+" =?and id != ?";            num = jdbcDao.getCountForJdbcParam(sql, newObject[]{duplicateCheckPage.getFieldVlaue(),duplicateCheckPage.getRowObid()});      }else{            //.添加页面校验            String sql = "SELECT count(*) FROM "+duplicateCheckPage.getTableName()                        +" WHERE "+duplicateCheckPage.getFieldName()+"=?";            num = jdbcDao.getCountForJdbcParam(sql, new Object[]{duplicateCheckPage.getFieldVlaue()});      }            if(num==null||num==0){            //该值可用            j.setSuccess(true);            j.setMsg("该值可用!");      }else{            //该值不可用            j.setSuccess(false);            j.setMsg("该值不可用,系统中已存在!");      }      return j;    } Ajax校验是否重复$.ajax({                url : 'duplicateCheckAction.do?doDuplicateCheck',                async:false,                data : {                  tableName : tableName,                  fieldName : fieldName,                  fieldVlaue: fieldVlaue,                  rowObid   : obid                },                dataType : 'json',                success : function(response) {                  check_flag = response.msg+"+"+response.success;                  //$.messager.alert('提示', response.msg, 'error');                }            });            $.ajaxSetup({ async: false});//同步ajax             return check_flag; Validform_v5.3.1_min.js修改的比较多。

JackJun 发表于 2014-1-13 09:03:12

给力给力:D:D:D:D

lh140614 发表于 2014-5-7 16:35:51

$.ajaxSetup({ async: false});//同步ajax
这个很关键啊!
但是为什么还要同步一下呢?
页: [1]
查看完整版本: JEECG 通用表单字段重复校验实现