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 = )
{
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');
});
上一篇:jquery php ajax 表单验证


下一篇:Adapter 代码中启动报错