• js回调函数,检测这个值是否重复


    //校验提交的数据是否重复
    /**
     * url:后端的查询地址
     * filedVal: 要传到后台的值
     * ele:要绑定显示的元素,一般就是当前的input就可以,直接在其后边追加显示
     * fn:回调函数,把查询到的值,回调给使用者
    *
    * json 后台传过来的数据{data:""} *
    */ checkFiled: function (url, filedVal, ele, msg, fn) { if (!msg) { msg = "此项数据重复"; } $.getJSON(url, {filed: filedVal}, function (json) { if (json.data != null && json.data != 'null') { $(ele).next().remove("span"); $(ele).parent().append('<span>' + msg + '</span>'); } else { $(ele).next().remove("span"); } //写了函数 if (fn) { //就执行这个函数 fn(json.data); } }); }

    //使用方式
    var $input = $("input[name='customer.creditCode']"); $input.on('input', function (e) { App.checkFiled("/YunApps/com_momathink_crm_zkhq/customer/checkCreditCode", $input.val(), $input, "社会信用代码重复", function (data) { console.log("回调函数,拿到后台传过来的数据 " + data); }); });

     这个可以升级一下

    App = {
        data:{},//编辑时候保存传过来的值,保存时候如果写的和传过来的值一样,那么就不是重复的,如果是添加那么这个值就是空,
      
    //
    校验提交的数据是否重复 checkFiled: function (url,data,ele,msg,fn) { if(!msg){ msg = "此项数据重复"; } $.getJSON(url,data,function(json){ if(json.data != null && json.data != 'null'){ $(ele).next().remove("span"); $(ele).parent().append('<span style="color:#ff0000;">' + msg + '</span>'); }else{ $(ele).next().remove("span"); } //写了函数 if(fn){ fn(json.data); } }); }, /** * 检测客户的这个数据是否重复 * @param appVal app保留下的值,这个值在编辑的时候是作为全局变量存下的 * @param ele 绑定事件的元素,一般是input框 * @param filed 查询的数据库字段 * @param msg 提示的消息 */ checkCustomerFiled:function(appVal,ele,filed,msg){ var $input = $(ele); $input.on('input',function(e){ //编辑和原来的值一样不检测 if(appVal == $input.val()){ return ; } App.checkFiled("/YunApps/com_momathink_crm_zkhq/customer/checkField",{'filed':filed,'val':$input.val()},$input,msg); }); }, //监测重复值,使用方法 checkFieldMethod:function(){ console.log("开始添加检测重复")
    var $input = $("input[name='customer.creditCode']");//要检测的input元素

            /*
            * App.data.id 编辑时候保存全局的id ,放置我写了一个不想要的值之后,不想改了,回到原来的值后保重复的问题,如果是添加这个值就是空,那就没问题了
            * $input 要校验的元素,这个元素的值就是下边这个字段传到后台的值
            * creditCode 传到后台的要校验的数据库中的这个字段的名字
            * 最后的文字 就是我们重复后提示的文字
            */ App.checkCustomerFiled(App.data.id,$input,
    'creditCode','社会信用代码重复')
    var $inputcompanyName = $("input[name='customer.companyName']"); App.checkCustomerFiled(App.data.companyName,$inputcompanyName,'companyName','公司名称重复') },
    }
     

    后台方法,改进后的

     /**
         * 根据字段和值查询数据
         * @param filed 数据库表字段
         * @param val 字段对的值
         * @return
         */
        public static Integer getIdByFiledAndVal(String filed,String val){
            if(null == filed || null == val){
                return null;
            }
            CrmCustomer crmCustomers = dao.findFirst("SELECT id FROM crm_customer WHERE " + filed + "=? limit 1", val);
            if(null == crmCustomers){
                return null;
            }
            return crmCustomers.getId();
        }

    传到前台的是一个json
    {data,""}

     如果再次改动,可以把数据库的名字加上,这样就可以对不同的表进行查询了

  • 相关阅读:
    careercup-树与图 4.6
    careercup-树与图 4.5
    careercup-树与图 4.4
    careercup-树与图 4.3
    oracle 建表时显示ORA-00904无效的标识符
    Unable to read TLD "META-INF/c.tld" from JAR file
    MIME TYPE
    JavaWeb response对象常用操作
    移动硬盘文件删除后,空间没有变大
    Redis 数据结构解析和命令指南
  • 原文地址:https://www.cnblogs.com/renjianjun/p/9923968.html
Copyright © 2020-2023  润新知