Jquery Validator 增加自定义验证方法
$(document).ready(function () { jQuery.validator.addMethod("namerepeate", function(value, element) { //用jquery ajax的方法验证客户名称是不是已存在 var flag = false; $.ajax({ type:"POST", url:'@Url.Action("TestClientNameIsRepeat", "ClientExt", new { area = "Client" })', async:false, //同步方法,如果用异步的话,flag永远为1 data:{'name':$("#Name").val(),'clientId':$("#ClientID").val()}, success: function(data){ flag = data.IsNameRepeate; } }); return !flag; }, "客户名称已存在于客户数据中,不要重复添加。"); jQuery.validator.addMethod("deptrepeate", function (value, element) { //用jquery ajax的方法验证客户名称是不是已存在 var flag = false; $.ajax({ type: "POST", url: '@Url.Action("TestClientNameIsRepeat", "ClientExt", new { area = "Client" })', async: false, //同步方法,如果用异步的话,flag永远为1 data: { 'name': $("#DeptName").val(), 'clientId': $("#ClientID").val() }, success: function (data) { flag = data.IsNameRepeate; } }); return !flag; }, "客户名称已存在于客户数据中,不要重复添加。"); });
后台检测方法
public JsonResult TestClientNameIsRepeat(string name,int clientId = 0) { if (string.IsNullOrEmpty(name)) { return Json(new { IsNameRepeate = false }, JsonRequestBehavior.AllowGet); } return Json(new { IsNameRepeate = clientRepository.GetClients(p=> p.ClientID != clientId && (p.Name == name ||p.DeptName == name),false).Any() }, JsonRequestBehavior.AllowGet); }
扩展:自定义方法的错误消息,比如查询是谁添加了这条记录,可以参考下面代码
$.validator.addMethod('PD_password', function (value, element) { var len = value.length; if(len<6){ $(element).data('error-msg','长度不能少于6位'); return false; } if(len>15){ $(element).data('error-msg','长度不能大于15位'); return false; } return true; }, function(params, element) { return $(element).data('error-msg'); });
posted on 2017-10-20 11:38 LovlyPuppy 阅读(341) 评论(0) 编辑 收藏 举报