div内加载html页面上的jQuery验证器功能错误

时间:2018-12-17 07:05:03

标签: javascript jquery jquery-validate

我使用JQuery验证器作为表单验证。如果我通过链接打开html页面,验证程序就可以正常工作。但是,如果我在div中加载“ my_link”,则会显示错误。 jquery.validate.js已包括在内,我可以在表单提交时看到验证程序错误响应,这意味着js文件正在运行,但没有看到validate()作为功能。

错误是:

  

VM23000:10 Uncaught TypeError:$(...)。valid不是函数

代码错误行:$("#my_form_id").valid()

要在div中加载页面,我在下面使用标准代码

$("#content").load("https://my_link/");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="content" style="width:100%; height:100%;"></div>

1 个答案:

答案 0 :(得分:0)

  

但它没有将validate()视为函数。

您的错误全都与validate()有关,但您对调用.validate()方法的位置一无所知。您还向我们展示了您包含jQuery,而没有展示您包含jQuery Validate插件的地方。

您必须在构造表单后 调用.validate()方法。如果要通过Ajax将表单的标记加载到此页面上,则只能在完成Ajax后 调用此表单上的.validate()方法。您的错误表明您在表单存在之前调用了.validate()和/或未包含插件。

因此,假设您正在使用my_link加载表单,并且正确包含了该插件。

$("#content").load("https://my_link/", function() {
    // fires upon completion of .load()
    $('#yourform').validate({   // INITIALIZE jQuery Validate here
        // your rules & options
    });
});

See jQuery .load()