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

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

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

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

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

我的表单具有一个具有“ myformid”值的ID属性,并且脚本验证了表单字段。这有效。

但是,如果我在每个页面上都包含两个代码,但是该页面没有带有MyFormid的ID的表单,那么我会遇到空错误。要尝试解决此问题并仅在存在适当的表格时进行插件加载,我尝试了以下方法:

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

那也很好。但是,现在我无法弄清楚如何初始化验证Engine并将其绑定到表单。为什么这不起作用?

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

我也尝试了:

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

没运气。我得到此错误:$(“#myformid”)为null。

想法?我几乎是秃头的。这没有帮助!

有帮助吗?

解决方案 2

事实证明,这是另一个开发人员添加的脚本的原型冲突。没有天生的错误

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

其他提示

您可以在所有页面中包含JS,但是只有在形式存在时才致电验证Engine。像那样:

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

  
$(document).ready(function() {
if($('#myFormID').length) 
    {
     $("#myFormID").validationEngine();
    }
});

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top