Mutilpe JS文件包含在另一个js文件中有时不起作用

Mutilpe JS file included in another js file sometimes not working

本文关键字:文件 不起作用 js 另一个 JS 文件包 Mutilpe      更新时间:2023-09-26

我发现了如何将多个js文件包含在另一个js文件中,但我面临的一个问题是此功能有时会加载,有时不会加载,因此有时请求直接进入服务器进行服务器端验证而不执行客户端验证。

请帮助我解决此问题。

$.when(
        $.getScript('../../public/js/jquery.validate.min.js'),
        $.getScript('../../public/js/additional-methods.min.js'),
        $.Deferred(function(deferred) {
            $(deferred.resolve);
        })
        ).done(function() {
    $(function() {
        $("#login").validate({
            errorClass: "state-error",
            validClass: "state-success",
            errorElement: "em",
            rules: {
                email: {
                    required: true,
                    email: true,
                    minlength: 6,
                    maxlength: 50
                },
                password: {
                    required: true,
                    minlength: 6
                }
            },
            messages: {
                email: {
                    required: 'Enter your Email ID',
                    email: 'Enter a VALID Email ID',
                    minlength: 'Enter a VALID Email ID',
                    maxlength: 'Email ID can not be more than 50 characters'
                },
                password: {
                    required: 'Enter your Password',
                    minlength: 'Password must be minimum of 6 characters'
                }
            },
            highlight: function(element, errorClass, validClass) {
                $(element).closest('.field').addClass(errorClass).removeClass(validClass);
            },
            unhighlight: function(element, errorClass, validClass) {
                $(element).closest('.field').removeClass(errorClass).addClass(validClass);
            },
            errorPlacement: function(error, element) {
                error.insertAfter(element.parent());
            }
        });
    });
});

从代码示例的外观来看,似乎正在发生的事情是在您尝试提交后加载代码文件。您可以执行的几种解决方案是从其他文件中复制并粘贴代码,以便在匿名函数启动之前执行并读取代码,以便该函数可用于客户端验证。另一种解决方案是将它们全部按顺序放在页面上并以这种方式加载它们。最后一个解决方案是禁用提交按钮,直到函数准备就绪。但是,从这个小片段来看,您根本不需要将它们加载到这个 javascript 文件中。不要害怕页面上有多个js文件。

听起来您可能想使用适当的模块加载器...

Javascript的两种流行的模块格式是AMD(需要JS)和CommonJS(它的模块)。

我建议requireJS,因为它通常是异步的,因此通常对浏览器更好。