关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 12929|回复: 2

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

[复制链接]
发表于 2014-1-11 09:19:28 | 显示全部楼层 |阅读模式
目的:实现通用表单字段重复校验

例如:部门管理模块,部门名称重复校验
      <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)消息提示方式,两种方式
  [1].提示弹出层:如下所示:给t:formvalid  增加tiptype="1" 属性
      <t:formvalid formid="formobj" dialog="true" usePlugin="password" layout="table" tiptype="1"  action="cgFormHeadController.do?save">  
  [2].提示信息在文本框后面提示,不需要给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())){
            //[2].编辑页面校验
            String sql = "SELECT count(*) FROM "+duplicateCheckPage.getTableName()
                        +" WHERE "+duplicateCheckPage.getFieldName()+" =?and id != ?";
            num = jdbcDao.getCountForJdbcParam(sql, newObject[]{duplicateCheckPage.getFieldVlaue(),duplicateCheckPage.getRowObid()});
        }else{
            //[1].添加页面校验
            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  修改的比较多。

jeecg 字段值不允许重复录入简易工具类.doc

28 KB, 下载次数: 6823

发表于 2014-1-13 09:03:12 | 显示全部楼层
给力给力
发表于 2014-5-7 16:35:51 | 显示全部楼层
$.ajaxSetup({ async: false});//同步ajax
这个很关键啊!
但是为什么还要同步一下呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表