Jquery Validator 增加自定义验证方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘);
});

 

以上是关于Jquery Validator 增加自定义验证方法的主要内容,如果未能解决你的问题,请参考以下文章

jquery.validation自定义正则表达式验证

请问jQuery validate自定义验证规则怎么调用

使用 jQuery 验证插件自定义日期格式

Jquery validate自定义验证

jQuery validator addMethod 动态提示信息

jQuery 验证: $.data($('form')[0], 'validator').settings 返回未定义