防止 Jqueryvalidation 在模式打开时验证远程

我有这样的脚本:


const add_modal =  $('#add_modal');

const add_form = $('#add_form');

const add_button = $('#add_button');

const save_button = $('#save_button');


let add_validator = add_form.validate({


            ignore: 'input[type=hidden], .select2-search__field', // ignore hidden fields

            errorClass: 'validation-invalid-label',


            highlight: function(element, errorClass) {

                $(element).removeClass(errorClass);

            },

            unhighlight: function(element, errorClass) {

                $(element).removeClass(errorClass);

            },


            // Different components require proper error label placement

            errorPlacement: function(error, element) {


                // Unstyled checkboxes, radios

                if (element.parents().hasClass('form-check')) {

                    error.appendTo( element.parents('.form-check').parent() );

                }


                // Input with icons and Select2

                else if (element.parents().hasClass('form-group-feedback') || element.hasClass('select2-hidden-accessible')) {

                    error.appendTo( element.parent() );

                }


                // Input group, styled file input

                else if (element.parent().is('.uniform-uploader, .uniform-select') || element.parents().hasClass('input-group')) {

                    error.appendTo( element.parent().parent() );

                }


似乎 jqueryvalidation 插件正在检查打开模式时的邮件可用性。因为当我在网络检查器上看到它时,它会向/admin/users/check-email发送一个发布请求。我怎样才能防止这种行为并让它只在我按下 save_button 时检查?save_button 是模态内的一个按钮。


茅侃侃
浏览 166回答 1
1回答

慕姐4208626

尝试这个:let update_validator = update_form.validate({            ignore: 'input[type=hidden], .select2-search__field', // ignore hidden fields            errorClass: 'validation-invalid-label',            highlight: function(element, errorClass) {                $(element).removeClass(errorClass);            },            unhighlight: function(element, errorClass) {                $(element).removeClass(errorClass);            },            // Different components require proper error label placement            errorPlacement: function(error, element) {                // Unstyled checkboxes, radios                if (element.parents().hasClass('form-check')) {                    error.appendTo( element.parents('.form-check').parent() );                }                // Input with icons and Select2                else if (element.parents().hasClass('form-group-feedback') || element.hasClass('select2-hidden-accessible')) {                    error.appendTo( element.parent() );                }                // Input group, styled file input                else if (element.parent().is('.uniform-uploader, .uniform-select') || element.parents().hasClass('input-group')) {                    error.appendTo( element.parent().parent() );                }                // Other elements                else {                    error.insertAfter(element);                }            },            rules: {                name: {                    required: true,                    minlength: 2,                    maxlength: 20                },                email: {                    required: true,                    email: true,                    remote: {                        url: "/admin/users/email-available",                        type: "post",                        data: {                            user_id: function () {                                return $("#id").val();                            }                        }                    }                },                role: {                    required: true,                },                password: {                    minlength: 12                },                password_verification: {                    required: isPasswordPresent,                    minlength: 12,                    equalTo: "#update_password"                },            },            messages:{                email:{                    remote: "Email is already taken."                }            },            submitHandler: function(form, event) {                event.preventDefault();                let $action = $(form).attr('action');                let $method = $(form).attr('method');                let $data  = $(form).serialize();                $.ajax({                    url: $action,                    type: $method,                    data: $data,                    success: function (result) {                        if (result.type === 'success') {                            update_modal.modal("hide");                            update_validator.resetForm();                            swalInit({                                title: 'Success!',                                text: result.text,                                type: 'success',                                timer: 3000,                                showCloseButton: true                            }).then((reload) => {                                datatables.ajax.reload();                            });                        } else {                            swalInit({                                title: 'Oops...',                                text: result.text,                                type: 'error',                                timer: 3000,                            });                        }                    },                })            }        });
打开App,查看更多内容
随时随地看视频慕课网APP