【问题标题】:Why am I unable to initializing a jQuery function within a getScript callback?为什么我无法在 getScript 回调中初始化 jQuery 函数?
【发布时间】:2011-01-27 19:31:17
【问题描述】:

我的具体问题/问题与实施 Cedric Dugas 的 jQuery 验证插件 (http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/#comments) 的 v1.7 有关,但我相信这个问题很容易推广到其他情况。

通常我会像这样加载以下脚本:

<script src="inc/formValidator/js/jquery.validationEngine.js" type="text/javascript"></script> 

然后要初始化插件,我执行以下操作:

<script> 
$(document).ready(function() {      
    $("#myFormID").validationEngine();
});
</script>

我有一个 id 属性值为“myFormID”的表单,脚本验证表单字段。这行得通。

但是,如果我在每个页面上都包含这两位代码,但该页面没有 ID 为 myFormID 的表单,则会收到 null 错误。为了尝试解决这个问题并仅在存在适当的表单时才加载插件,我尝试了这个:

<script>
    if($('#myFormID').length) 
    {
        $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() {
            alert('Load was performed.');
        });
    };
</script>

这也很好用。但是,现在我不知道如何初始化验证引擎并将其绑定到表单。为什么这不起作用?

    $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() 
    {
        $("#myFormID").validationEngine();
    });

我也试过这个:

    $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() 
    {
        $("#myFormID").load(function()
        {
            $(this).validationEngine();
        });
    });

没有运气。我收到此错误:$("#myFormID") 为空。

想法?我几乎秃顶了。这没有帮助!

【问题讨论】:

  • 原来是另一个开发者添加的脚本的原型冲突。

标签: jquery callback null validation getscript


【解决方案1】:

您可以在所有页面中包含 js,但只有在表单存在时才调用验证引擎。 像这样:

<script src="inc/formValidator/js/jquery.validationEngine.js" type="text/javascript"></script> 

$(文档).ready(函数() { if($('#myFormID').length) { $("#myFormID").validationEngine(); } });

【讨论】:

  • 谢谢,但是在每个页面中包含 js 会导致错误——这显然是原始验证脚本的问题,但这是我无法控制的。我刚刚发现我上面的代码不起作用的原因是由于另一个开发人员添加的脚本的原型冲突。尽管如此,再次感谢。
【解决方案2】:

原来这是另一个开发人员添加的脚本的原型冲突。本质上没有任何问题

<script>
    if($('#myFormID').length) 
    {
        $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() {
            $("#myFormID").validationEngine();
        });
    };
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2017-01-07
    相关资源
    最近更新 更多