首页 > 解决方案 > JQuery 验证清空 JS 对象

问题描述

我正在使用 jQuery Validation 来验证 ASP.NET MVC 应用程序中的表单。我正在使用 Ajax 提交表单,该表单有几个基本字段,但还构建了一个需要提交给控制器的 js 对象。

我遇到的问题是当我在 jQuery 验证上使用提交处理程序时,它会清除我构建的 JS 对象。

我在验证之前检查了对象,它是准确的。然后我使用 ajax 方法上的 before send 检查了对象,它已经清空了。

   $('#FATTemplateForm').validate({

            errorPlacement: function (error, element) {
                //check whether chosen plugin is initialized for the element
                if (element.attr("name") == "PORRadio") {
                    error.insertAfter("#POROption");
                }
                else if (element.attr("name") == "UPN")
                {
                    error.insertAfter("#UPN-Chosen");
                }
                else if (element.attr("name") == "ComponentTypeInput")
                {
                    error.insertAfter("#componetType-Chosen");
                }
                else if (element.attr("name") == "ComponentAttributeTypeInput")
                {
                    error.insertAfter("#FATAttributes-Chosen");
                }
                else {
                    error.insertAfter(element);
                }
            },
            showErrors: function (errorMap, errorList) {

                var errors = this.numberOfInvalids(); // <- NUMBER OF INVALIDS

                var summary = "You have " + errors + " validation errors. Please fix errors and try submitting again.";
                $('#ErrorMsg').empty().append(summary);
                $('.alert-danger').show()

                this.defaultShowErrors(); // <- ENABLE default MESSAGES
               
              
            },
            invalidHandler: function (form, validator) {
              
            },



            rules: {
                //Select System/Component
                ParentChildInput: {
                    required: true,
                },

                ComponentTypeInput: {
                    required: {
                        depends: function (element) {
                            if ($('#formParentChild').val() == "Component") {
                                return true;
                            } else {
                                return false;
                            }
                        }
                    }

                },
                OtherComponentTypeNameInput: {

                    required: {
                        depends: function (element) {
                            if ($('#formComponentType').val() == "Other") {
                                return true;
                            } else {
                                return false;
                            }
                        }
                    }
                },
                ComponentAttributeTypeInput: {

                    required: {
                        depends: function (element) {
                            if ($('#formComponentType').val() == "Other") {
                                return true;
                            } else {
                                return false;
                            }
                        }
                    }
                },

                Project: {
                    required: true,
                },

                UPN: {
                    required: true,
                },

                Disciplines: {
                    required: true,
                },

                DrawingRefernceNameInput: {
                    required: false,
                },

                PORRadio: {
                    required: true,
                },

                PORNumNameInput: {

                    required: {
                        depends: function (element) {

                            if ($("input:radio[name='PORRadio']:checked").val()=="1") {
                                return true;
                            } else {
                                return false;
                            }
                        }
                    }
                },
                PORRevNameInput: {

                    required: {
                        depends: function (element) {
                            if ($("input:radio[name='PORRadio']:checked").val() == "1") {
                                return true;
                            } else {
                                return false;
                            }
                        }
                    },
                    digits: true,
                },
                PORDateNameInput: {

                    required: {
                        depends: function (element) {
                            if ($("input:radio[name='PORRadio']:checked").val() == "1") {
                                return true;
                            } else {
                                return false;
                            }
                        }
                    }
                },

                DrawingRefernceNameInput: {

                    regx: /^[ A-Za-z0-9_@./%^()!#&"'+-]*$/,
                }

                //OtherComponentTypeNameInput:
                //{
                //    required: true
                //},
                //ComponentAttributeTypeInput:
                //{
                //    required: true
                //},
            },
            messages: {},
            errorElement: 'div',
            errorLabelContainer: '.errorTxt',
            submitHandler: function (form) {
               
                $.ajax({
                    type: "POST",
                    beforeSend: console(FAT),
                    url: "/FATs/CreateFAT_Template",
                    data: JSON.stringify(FAT),
                    contentType: 'application/json; charset=utf-8',
                    headers: headers,
                    dataType: "json",
                    success: successFunc,
                    error: errorFunc
                });


                //Success Result
                function successFunc(data, status) {

                    //Redirect User after successful submittion of FAT
                    window.location.href = "/FATs/CreateFATFromTemplateIndex";
                }

                //Error Result
                function errorFunc() {
                    alert('Error! Please ensure you a connected to the internet and try again.');
                }
            },



        });

为什么在使用验证时对象被清空?

标签: javascriptjqueryasp.net-mvcjquery-validate

解决方案


推荐阅读