//校验提交的数据是否重复
/**
* 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. ASPxLoadingPanel(珍藏版)

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ASPxLoadingPanel ...

  2. crontab 安装与配置

    安装方法: yum -y install vixie-cron yum -y install crontabs 说明:vixie-cron 软件包是 cron 的主程序:crontabs 软件包是用来 ...

  3. 机器学习进阶-图片基本处理-ROI区域 1.img[0:200, 0:200]截取图片 2.cv2.split(对图片的颜色通道进行拆分) 3. cv2.merge(将颜色通道进行合并) 4 cur_img[:, :, 0] = 0 使得b通道的颜色数值为0

    1. 截取图片的部分区域img[0:200, 0:200], 读入的图片是ndarray格式 2. b, g, r = cv2.split(img)  # 对图片的颜色通道进行拆分 3.img = c ...

  4. Props文件属性读取

    Properties props=new Properties(); try { props.load(new InputStreamReader(getClass().getResourceAsSt ...

  5. MySQL数据库备份工具mysqldump的使用(转)

    说明:MySQL中InnoDB和MyISAM类型数据库,这个工具最新版本好像都已经支持了,以前可能存在于MyISAM的只能只用冷备份方式的说法. 备份指定库: mysqldump -h127.0.0. ...

  6. 人脸识别68个点<转>

    [Opencv] 于仕琪 人脸68个特征点分布情况 // 鼻尖 30 // 鼻根 27 // 下巴 8 // 左眼外角 36 // 左眼内角 39 // 右眼外角 45 // 右眼内角 42 // 嘴 ...

  7. CentOs7下php7装redis拓展报错

    遇到PHP Startup: Unable to load dynamic library:undefined symbol: zval_used_for_init in Unknown on lin ...

  8. 【367】通过 python 实现 SVM 硬边界 算法

    参考: 支持向量机整理 SVM 硬边界的结果如下: $$min \quad \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_jy_iy_j \v ...

  9. 如何在Windows下安装MYSQL,并截图说明

    说明 : window 下安装 mysql 虽然简单,但是细节不注意就会安装失败,特别是配置服务器时,Current Root Password:为空:如果输入密码了在后面安装会报错.(不知道设置这个 ...

  10. 【原】wow64 x86/x64 代码切换过程分析

    下面以ntdll32!ZwQueryInformationProcess API为例分析 x86代码与x64代码之间的切换过程, 32bit的test程序: step1: ntdll32!ZwQuer ...