由于平台限制,无法更改 jquery 加载的位置(在页脚中)。加载后需要正文中的脚本加载

用户1559189

我只能访问正文内容,而不能访问页眉或页脚,Jquery 加载在每个页面的页脚中,因此当我的脚本加载到正文中时,它们会出现“$ 未定义”之类的错误。当我尝试在 dom ready 上加载脚本时,我仍然收到错误,因为它仍在主 jquery 之前加载。有什么我可以做的让主体中的 jquery 在页脚脚本之后加载?

进一步说明:我确实搜索了其他用户发布的内容,但没有遇到这种特殊情况。我尝试了一个简单的

$(document).ready(function () {

它没有用。我正在尝试让表单验证脚本正常工作,但仍然不断收到

Uncaught TypeError: $(...).validate is not a function

使用下面的答案确实解决了一些问题,但没有解决这个问题。我的代码是:

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script type="text/javascript">
window.addEventListener('load', function () {    
     $.getScript("https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js");
     $.getScript("https://ajax.aspnetcdn.com/ajax/jquery.validate/1.17.0/jquery.validate.min.js");
     $.getScript("https://ajax.aspnetcdn.com/ajax/jquery.validate/1.17.0/additional-methods.js"); 
}); 
</script>
<script type="text/javascript">
window.addEventListener('load', function () {
    $('#commentForm').validate({ // initialize the plugin
        rules: {
            email: {
                required: true,
                email: true
            },
            mobile_phone: {
                required: true,
                phoneUS: true
            }
        },
        submitHandler: function (form) { // for demo

            //alert('valid form submitted'); // for demo

            var $phone_temp = $('#mobile_phone').val();
            $('#mobile_phone').val($phone_temp.replace(/\D+/g, ''));

            form.submit();
        }
    });
}); 
</script>
       <!-- in footer: using for local testing -->
        <script src="https://.../jquery.js"></script>
        <script src="https://.../bootstrap.js"></script>
用户1559189

这就是最终奏效的

<script>
window.addEventListener('load', function () {
 $.when(
 $.getScript("https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"),
 $.getScript("https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"),
 $.getScript("https://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.min.js"),
 $.getScript("https://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/additional-methods.js"),
      $.Deferred(function( deferred ){
    $( deferred.resolve );
})
).done(function(){

$('#commentForm').validate({ // initialize the plugin
    rules: {
        email: {
            required: true,
            email: true
        },
        mobile_phone: {
            required: true,
            phoneUS: true
        }
    },
    submitHandler: function (form) { // for demo

        //alert('valid form submitted'); // for demo

        var $phone_temp = $('#mobile_phone').val();
        $('#mobile_phone').val($phone_temp.replace(/\D+/g, ''));

        form.submit();
    }
});
});
});
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章