• 扩展jquery手动添加MVC的Model验证格式的错误信息


    jQuery.extend(jQuery.validator.messages, {
        required: "此项必填。",
        remote: "请修正此项。",
        email: "请输入一个合法的电子邮件地址。",
        url: "请输入合法网址。",
        date: "请输入合法日期。",
        dateISO: "请输入合法日期(ISO格式)。",
        number: "请输入合法数字。",
        digits: "请只输入数字。",
        creditcard: "请输入一个有效的信用卡号。",
        equalTo: "请再次输入相同的值。",
        maxlength: jQuery.validator.format("请输入不超过{0}个字符。"),
        minlength: jQuery.validator.format("请输入至少{0}个字符。"),
        rangelength: jQuery.validator.format("请输入介于{0}和{1}个长的字符值。"),
        range: jQuery.validator.format("请输入介于{0}和{1}的值。"),
        max: jQuery.validator.format("请输入一个小于或等于{0}的值。"),
        min: jQuery.validator.format("请输入一个大于或等于{0}的值。")
    });

    //光标移出时触发客户端验证
    $.validator.setDefaults({
        //光标移出时
        onfocusout: function (element) {
            this.element(element);
        },
        //光标移入时
        onfocusin: function (element, event) {
            //找到显示错误提示的标签并移除,针对jquery.validate.unobtrusive
            var errorElement = $(element).next('span.field-validation-error');
            if (errorElement) {
                errorElement.children().remove();
            }
        },
        onkeyup: function (element, event) {
        }
    });


    //添加Model验证错误信息
    $.extend(
        {
            appendValidateMessage: function (errorList) {
                if (errorList == null || errorList == 'undefined' || errorList.length == 0) {
                    return;
                }
                for (var i = 0; i < errorList.length; i++) {
                    $('#' + errorList[i].Key)
                        .after(
                            '<span class="text-danger field-validation-error" data-valmsg-for="' +
                            errorList[i].Key +
                            '" data-valmsg-replace="true"><span for="' +
                            errorList[i].Key +
                            '" class="">' +
                            errorList[i].Value +
                            '</span></span>');
                }
            },
            clearValidation: function () {
                $('.text-danger.field-validation-error').remove();
            }
        });

    ////清除验证信息
    //jQuery.fn.clearValidation = function () {
    //    var $this = $(this);
    //    var v = $this.validate();
    //    //var v = formToClearValidation.validate();
    //    $('[name]', $this).each(function () {
    //        v.successList.push(this);
    //        v.showErrors();
    //    });
    //    v.resetForm();
    //    v.reset();
    //};

    jQuery.fn.extend({
        valid: function () {
            var err = $(this).find('.text-danger.field-validation-error').find('span[for]');
            if (err.length > 0) {
                return false;
            }
            return true;
        }
    });


    $.validator.addMethod('qeCartonNo', function (value, element) {
        //QE箱號验证规则
        return this.optional(element) || /^[A-Z]{2,}-[A-Z]{2,}d{1,}-[A-Z]{1,}-d{1,}-[0-9]{4}$/.test(value);
    }, 'Carton 编码原则 :客户+机种+阶段+数量+号码,类似:MS-SM3370-EVT-10-0001');

    $.validator.addMethod('qeEquipmentNo', function (value, element) {
        //QE机台号正则验证规则
        return this.optional(element) || /^[A-Z]{2}-Tester-[0-9]{4}$/.test(value);
    }, '設備號格式为:英文单词的第一个字母-Tester-XXXX類似:MB-Tester-0001');

    =====================

    使用:

                $("#save").on("click",
                    function () {
                        var isValid = form.valid();
                        if (!isValid) {
                            return false;
                        }
                        form.submit();
                    });
                $('#qeWorkOrderForm').submit(function (e) {
                    e.preventDefault();
                    $('#save').attr('disabled', 'disabled');
                    var formData = new FormData($("form")[0]);
                    $.ajax({
                        url: '@Url.Action("Create","QeWorkOrder")',
                        type: "POST",
                        data: formData, //form.serialize(),
                        async: false,
                        cache: false,
                        contentType: false,
                        processData: false,
                        success: function (result) {
                            result = new Result(result);
                            debugger;
                            try {
                                if (result.status == 2) {
                                    $.clearValidation();
                                    $.appendValidateMessage(result.modelStateErrList);
                                    warning();
                                } else {
                                    layer.msg(result.message);
                                }

                            } catch (err) {

                            }

                        },
                        error: function (data) {
                            debugger;
                            try {
                                layer.msg("error:" + data.responseText);
                            } catch (err) {

                            }
                            warning();
                        },
                        complete: function () {
                            $('#save').removeAttr('disabled');
                            $('#loadingDiv').hide();
                        }
                    });
                });

  • 相关阅读:
    oracle 用户密码过期
    求字符串的长度
    oracle 行列装置
    SQL Server 2005参考:PIVOT
    SOAP 入门
    SQL Server 2005参考:数据汇总
    Silverlight 参考: 几何图形 MSDN
    jQuery参考:jquery中的$(document).ready()与window.onload的区别
    Silverlight开源项目与第三方控件收集
    Silverlight 项目开发准则参考
  • 原文地址:https://www.cnblogs.com/nirvanan/p/11976578.html
Copyright © 2020-2023  润新知