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,""}
如果再次改动,可以把数据库的名字加上,这样就可以对不同的表进行查询了
js回调函数,检测这个值是否重复的更多相关文章
- JS回调函数(callback)
在使用Jquery的时候,用到Callback(),回调函数的概念.而且很多. 比如: $.ajax({ url:"test.json", type: "GET" ...
- C# dll 事件执行 js 回调函数
C# dll 事件执行 js 回调函数 前言: 由于js 远程请求 XMLHttpRequest() 不支持多线程,所以用C# 写了个dll 多线程远程抓住供js调用. 最初代码为: C#代 ...
- js 回调函数小例子
js 回调函数小例子 <script> //将函数作为另一个函数的参数 function test1(){ alert("我是test1"); } function t ...
- js回调函数的理解
js回调函数(callback)理解 Mark! 讲之前说一句 function say(){ alert(,,,,,,,,) } var say=function (){ alert(,,,,,,, ...
- JS回调函数全解析教程
转自:http://blog.csdn.net/lulei9876/article/details/8494337 自学jQuery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速g ...
- 学习js回调函数
<!DOCTYPE HTML> <html> <head> <meta charset="GBK" /> <title> ...
- 如何理解JS回调函数
1.回调函数英文解释: A callback is a function that is passed as an argument to another function and is execut ...
- js回调函数(callback)理解
Mark! js学习 不喜欢js,但是喜欢jquery,不解释. 自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速google之,发现原来中文翻译成回调.也就是回调函 ...
- js回调函数
自学jQuery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速google之,发现原来中文翻译成回调.也就是回调函数了.不懂啊,于是在google回调函数,发现网上的中文解释实在是 ...
随机推荐
- Delphi 泛型详解
http://www.cnblogs.com/jxgxy/category/216671.html
- 微服务-springcloud
感觉微服务都差不多概念,最近稍微看了下springcloud,感觉入门还是很简单的,框架用用就那么回事,深入的话需要很多时间投入了 学一个东西,我推荐首先从概念上了解到他是做什么的,什么时候需要,基本 ...
- HBASE小结--待续使用
构建在HDFS之上的分布式,面向列的存储系统,使用zookeeper做协同服务,在需要实时读写和随机访问超大规模数据集的时候使用 缺点:非关系型,不支持SQL,数据类型单一(字符串,无类型),之支持单 ...
- js 正则函数初级
1.test :正则匹配字符串,如果成功则返回true,若果失败则返回false 格式:/正则表达式/.test(字符串) 默认吗匹配规则,区分大小写:如果不区分大小写,则加修饰符 i 例子: < ...
- 尚硅谷springboot学习22-Thymeleaf入门
Thymeleaf是一种模板引擎,类似于JSP.Velocity.Freemarker
- c++复习:C++输入和输出流
C++输入和输出流 1.I/O流的概念和流类库的结构 程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件. C++输入输出包含以下三个方面的内容: 对系统指定的标准 ...
- linux下svn不能连接上windows服务器:SSL handshake failed: SSL error
在linux服务器下载https链接的svn源码时出现:SSL handshake failed: SSL error: Key usage violation in certificate has ...
- 如何启用windows8, windows10中被停用的远程桌面,如何连接windows10远程桌面?
针对windows8.x中文版以及win10无远程桌面功能的解决办法: 第一步到一个网站上下载一个工具包. 这个是开源的.可以放心使用.下载地址: https://github.com/binarym ...
- 关于HashMap多线程下环形链表的总结
目录 1. 概述 2. 敲黑板的点 3. 为什么会出现循环链表的情况呢?(jdk1.7) 4. jdk1.8中改进了resize方法 5. HashMap的线程安全问题 6. 总结 1. 概述 本文主 ...
- 使用__slots__限制实例的属性
1.给实例化的对象添加新的属性 看下面一段代码,然后给实例化的对象s添加或者修改属性 class Student(object): name='china' s = Student() s1=Stud ...