//校验提交的数据是否重复
/**
* 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,""}

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

js回调函数,检测这个值是否重复的更多相关文章

  1. JS回调函数(callback)

    在使用Jquery的时候,用到Callback(),回调函数的概念.而且很多. 比如: $.ajax({ url:"test.json", type: "GET" ...

  2. C# dll 事件执行 js 回调函数

      C# dll 事件执行 js 回调函数   前言: 由于js 远程请求  XMLHttpRequest() 不支持多线程,所以用C# 写了个dll 多线程远程抓住供js调用. 最初代码为: C#代 ...

  3. js 回调函数小例子

    js 回调函数小例子 <script> //将函数作为另一个函数的参数 function test1(){ alert("我是test1"); } function t ...

  4. js回调函数的理解

    js回调函数(callback)理解 Mark! 讲之前说一句 function say(){ alert(,,,,,,,,) } var say=function (){ alert(,,,,,,, ...

  5. JS回调函数全解析教程

    转自:http://blog.csdn.net/lulei9876/article/details/8494337 自学jQuery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速g ...

  6. 学习js回调函数

    <!DOCTYPE HTML> <html> <head> <meta charset="GBK" /> <title> ...

  7. 如何理解JS回调函数

    1.回调函数英文解释: A callback is a function that is passed as an argument to another function and is execut ...

  8. js回调函数(callback)理解

    Mark! js学习 不喜欢js,但是喜欢jquery,不解释. 自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速google之,发现原来中文翻译成回调.也就是回调函 ...

  9. js回调函数

    自学jQuery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速google之,发现原来中文翻译成回调.也就是回调函数了.不懂啊,于是在google回调函数,发现网上的中文解释实在是 ...

随机推荐

  1. FLEX中一组基于button的组件

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  2. SQL Server MSSQLSERVER 服务无法启动解决方案

    打开sql配置工具下的sql server configuration manager,然后将VIA协议禁用.

  3. android的特点有哪些

    android拥有完善的应用程序框架,支持4大应用组件activity,service,contentProvider,broadcast,可以在任意层次上进行复用和更换: android中java字 ...

  4. BlockingQueue之DelayQueue的学习使用

    DelayQueue 是一中阻塞队列,需要实现接口Delayed定义的方法.做下使用记录和心得吧, @Datapublic class DelayQueueExample implements Del ...

  5. li直接1px 像素的原因

    1.由于空白节点(多由于Enter造成),li不换行就可以解决问题. Internet Explorer会忽略节点之间生成的空白节点,其它浏览器不会忽略(可以通过检测节点类型,过滤子节点) 2.完美解 ...

  6. 如何配置windows定时任务

    Windows上配置任务定时执行有两种方法.一是通过控制面板中的界面配置,另外一种是通过schtasks命令配置.如果是简单的定时任务配置(比如每天单次执行)建议选择界面的方式,简洁.直观.易上手.如 ...

  7. Jsp基本语法 第二章

    今天是星期天,我学习了关于Jsp的一些基本页面元素 首先学习了一些基本页面注释 1.HTML的注释 <!-- htmI注释-->//    客户端可见 2.JSP的注释:  <%-- ...

  8. spring boot 的热部署插件

  9. 零基础用Docker部署微服务

    1. docker架构 这里的Client和DOCKER_HOST(docker server)都是在本地的,docker仓库Registry是在远程的: Client的docker命令通过Docke ...

  10. VMwear安装Centos7超详细过程

    本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.软硬件准备 软件:推荐使用VMwear,我用的是VMwear 12 镜像:Ce ...