为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
茅侃侃 2021-11-26 18:02:10
我有这样的脚本: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 是模态内的一个按钮。
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

尝试这个:


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,

                            });

                        }

                    },

                })

            }

        });



查看完整回答
反对 回复 2021-11-26
  • 1 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信