简体   繁体   English

从JavaScript调用Jquery函数时出错

[英]Error when Calling Jquery Function from Javascript

I am getting the error at the line : 我在行中得到错误:

validate(); validate();

When I trying to call the following jQuery function 当我尝试调用以下jQuery函数时

 (function ($) { 
        "use strict";    
         var methods = {
     validate: function () {
                 if ($(this).is("form"))
                     return methods._validateFields(this);
                 else {
                     // field validation
                     var form = $(this).closest('form');
                     var options = form.data('jqv');
                     var r = methods._validateField($(this), options);

                     if (options.onSuccess && options.InvalidFields.length == 0)
                         options.onSuccess();
                     else if (options.onFailure && options.InvalidFields.length > 0)
                         options.onFailure();
                     return r;
                 }
             }
    }

Using the following JavaScript, I am getting the error at validation function. 使用以下JavaScript,我在验证功能时遇到错误。

<script type="text/javascript">
    function dateSelectionChanged(sender, args) {
        $(function () {
            validate();
        });
    }
</script>

The function validate has been described in the above jQuery. 上面的jQuery中已经描述了validate函数。

You need to expose methods to other functions - put it in the global scope. 您需要将methods公开给其他函数-将其放在全局范围内。

So either use the global window object and do: 因此,可以使用全局window对象并执行以下操作:

window.methods = 

For example: 例如:

(function ($) { 
        "use strict";    
         window.methods = {
             validate: function () {...

Or define it first outside of (function($){...}) 或首先在(function($){...})之外定义它

For example: 例如:

var methods = {};
(function ($) { 
        "use strict";    
         methods = {
             validate: function () {...

Notice no var before second methods . 注意第二种methods之前没有var

Then you can call methods.validate() 然后可以调用methods.validate()

Also: ensure you close (function ($) { with })(jQuery) - it's missing from the code that you posted. 另外:确保关闭(function ($) { with })(jQuery) -您发布的代码中缺少该功能。

Try this:
 var methods = {
     validate: function () {
                 if ($(this).is("form"))
                     return methods._validateFields(this);
                 else {
                     // field validation
                     var form = $(this).closest('form');
                     var options = form.data('jqv');
                     var r = methods._validateField($(this), options);

                     if (options.onSuccess && options.InvalidFields.length == 0)
                         options.onSuccess();
                     else if (options.onFailure && options.InvalidFields.length > 0)
                         options.onFailure();
                     return r;
                 }
             }

<script type="text/javascript">
    function dateSelectionChanged(sender, args) {
            methods.validate();
    }
</script>

I have fixed it !! 我已经解决了!

I have called jQuery("#aspnetForm").valid(); 我叫jQuery(“#aspnetForm”)。valid();

I Have created a function called valid() 我创建了一个称为valid()的函数

Like this : 像这样 :

 $.fn.valid = function (method) {
           methods._validateFields(this);
     };

Now its fine .... ! 现在很好....!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM