zoukankan      html  css  js  c++  java
  • 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,""}

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

  • 相关阅读:
    理论+实践解析“IT治理”之模式与原则
    iOS开发如何避免安全隐患
    DBA职业发展之路:去“IOE”等挑战之下,DBA将何去何从?
    自动化测试最佳实践(一):从纺锤模型到金字塔模型
    宜信开源|手把手教你安装第一个LAIN应用
    宜信开源|数据库审核软件Themis的规则解析与部署攻略
    开源|性能优化利器:数据库审核平台Themis的选型与实践
    小老板,我300M的网,网速很慢怎么办?
    JSP、ASP、PHP Web应用程序怎么这么多P!
    难道你现在还不知道:C/S和B/S
  • 原文地址:https://www.cnblogs.com/renjianjun/p/9923968.html
Copyright © 2011-2022 走看看