从Javascript调用Jquery函数时出错

时间:2012-07-11 08:58:27

标签: javascript jquery asp.net .net

我收到了错误:

的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。

3 个答案:

答案 0 :(得分:0)

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

因此要么使用全局window对象,请执行:

window.methods = 

例如:

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

或首先在(function($){...})

之外定义它

例如:

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

在第二个var之前请注意methods

然后你可以拨打methods.validate()

另外:确保您使用(function ($) {关闭})(jQuery) - 您发布的代码中缺少该内容。

答案 1 :(得分:0)

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>

答案 2 :(得分:0)

我修好了!!

我调用了jQuery(“#aspnetForm”)。valid();

我创建了一个名为valid()

的函数

像这样:

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

现在很好......!