为什么我无法在getcript回调中初始化jQuery函数?
-
26-10-2019 - |
题
我的具体问题/问题与实施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(); } });
不隶属于 StackOverflow