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

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

最新文章

  1. log4cplus 在配置文件中设置文件路径,程序自动创建目录,且在日志文件前按日期创建相应的目录
  2. JQuery学习之Ajax应用
  3. slid.es – 创建在线幻灯片和演示文稿的最佳途径
  4. 动态链接库(DLL)总结
  5. DRUPAL 慢的原因
  6. 虚函数(virtual)为啥不能是static
  7. android 5.0开发环境搭建
  8. VB postmessage发送后台Tab
  9. Day01 Java环境变量配置
  10. [翻译]怎么写一个React组件库(二)
  11. asp.net(C#)html无限分类树 可新增 删除 修改
  12. Django-ORM多表操作(进阶)
  13. 谷歌排名影响因素最新研究(SEM RUSH版)
  14. 分金币 [CQOI 2011] [BZOJ 3293]
  15. 当强制关机时,出现Eclipse打不开的问题
  16. zabbix报错cannot set resource limit: [13] Permission denied解决方法
  17. Android system :led_class驱动
  18. pushpin Server-sent events &amp;&amp; openresty 集成试用
  19. 【BZOJ1044】[HAOI2008]木棍分割(动态规划,贪心)
  20. 定制django admin页面的跳转

热门文章

  1. 深度学习原理与框架-Tensorflow卷积神经网络-卷积神经网络mnist分类 1.tf.nn.conv2d(卷积操作) 2.tf.nn.max_pool(最大池化操作) 3.tf.nn.dropout(执行dropout操作) 4.tf.nn.softmax_cross_entropy_with_logits(交叉熵损失) 5.tf.truncated_normal(两个标准差内的正态分布)
  2. day38-常见第三方模块
  3. 反射机制(java)
  4. 爬虫--Scrapy-持久化存储操作2
  5. Django-wed开发框架-练习题
  6. jquery下插入标签以及clone的应用
  7. oracle第四天笔记
  8. Angular2学习笔记
  9. Oracle数据库备份/导入工具
  10. mysql 存储过程小问题