繁体   English   中英

从JavaScript调用Jquery函数时出错

[英]Error when Calling Jquery Function from Javascript

我在行中得到错误:

validate();

当我尝试调用以下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;
                 }
             }
    }

使用以下JavaScript,我在验证功能时遇到错误。

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

上面的jQuery中已经描述了validate函数。

您需要将methods公开给其他函数-将其放在全局范围内。

因此,可以使用全局window对象并执行以下操作:

window.methods = 

例如:

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

或首先在(function($){...})之外定义它

例如:

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

注意第二种methods之前没有var

然后可以调用methods.validate()

另外:确保关闭(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>

我已经解决了!

我叫jQuery(“#aspnetForm”)。valid();

我创建了一个称为valid()的函数

像这样 :

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

现在很好....!

暂无
暂无

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

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