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  阅读(338)  评论(0编辑  收藏  举报

导航