JQuery 验证导致过多递归

问题描述 投票:0回答:1

我有一个表单,我在其中添加了一些验证设置,当我尝试提交表单时,Firefox 抛出太多递归错误。

此代码在 Chrome 和 Internet Explorer 上运行良好。

有关如何解决此问题的任何建议。

var validationSettinsgs = {
    rules: {
        CustomerName: {
            required: true,
            pattern: '[أ-يa-zA-Z\\s]{1,100}',
            normalizer: trimInputFieldValue
        },
        DropDownListProblem: {
            required: function () {
                return $("#DropDownListCaseType").val() == 3
            },
            normalizer: trimInputFieldValue
        }
    },
    messages: {
        CustomerName: {
            required: "Please Enter Your full name",
            pattern: 'Please check Your full name'
        },
        DropDownListProblem: {
            required: 'Please select The Problem'
        }
    },
    highlight: function (element, errorClass, validClass) {
        $(element).prop('id')
        setValidationForm(element)
    },
    unhighlight: function (element, errorClass, validClass) {
        removeValidationForm(element)
    },
    submitHandler: function (form) {
        form.submit();
    }
}
var validator = $("#form").validate(validationSettinsgs)

$("#form").on('submit', () => {
    viewErrorMsgs();
})

function viewErrorMsgs() {
    var done = true;
    console.log(validator.invalid);
    for (const key in validator.invalid) {
        if (Object.hasOwnProperty.call(validator.invalid, key)) {
            if (validator.invalid[key]) {
                done = false
                break;
            }
        }
    }

    if (!done) {
        $('.needs-validation').addClass('was-validated')
    }
}

有关如何解决此问题的任何建议。

jquery forms jquery-validate
1个回答
-1
投票

setValidationForm(element)
有什么作用?这看起来很可能是递归的候选者,因为它最终可能会在这里调用自己。正如评论中提到的,发布您的堆栈跟踪会很有帮助

© www.soinside.com 2019 - 2024. All rights reserved.