JQueryValidation插件错误:“未捕获的TypeError:无法调用未定义的方法'调用'”

时间:2014-03-16 21:10:24

标签: jquery jquery-validate

我在使用优秀的JQueryValidation插件时遇到了一些问题。

我已经阅读了一些类似的问题,与它们的共同点似乎是没有包含插件方法 - 但是,远程和类型方法是插件的核心,并不需要被包括在内。

另一个奇怪的细节是registerEmail字段通常在输入模糊时验证。

当你输入registerEmail字段时,它验证正常,但错误有时会显示,有时它不会。

单击“提交”按钮时,始终显示错误。

以下是我的相关代码:

HTML

<form id="registrationForm" action="dostep2.asp" method="get">

     <input type="text" id="registerName" name="registerName" placeholder="Enter your Name." />
     <input type="text" id="registerEmail" name="registerEmail" placeholder="Enter your Email Address." />

     <button type="submit" name="submitButton1" value="submitButton1" class="btn btn-default btn-lg proceed">
          </span>Proceed to <strong>Payment</strong> <span class="glyphicon glyphicon-circle-arrow-right">
     </button>

</form>

的JavaScript

<script src="js/jquery.validate.min.js" type="text/javascript"></script>

<script type="text/javascript">

        var validator = $("#registrationForm").validate({

            debug: true,

            rules: {

                registerName: {
                    required: true
                },

                registerEmail: {
                    required: true,
                    email:true,
                    remote: "http://beta.mysite.com/Testmail.asp",
                    type: "get"
                },

                registerPassword: {
                    required: true
                },

                registerPasswordConfirm: {
                    required: true,
                    equalTo: "#registerPassword"
                },

                registerSub: {
                    required: true,
                    type: "get",
                    remote: "http://beta.mysite.com/testsub.asp"
                }

            },

            messages : {

                registerName: "Please type in your name.",
                registerEmail: "Please type in your e-mail.",
                registerPassword: "Please type in your password.",
                registerPasswordConfirm: "Please confirm your password.",
                registerSub: "Please type the subdomain you want to use."

            }


        });

    </script>

提前致谢!

1 个答案:

答案 0 :(得分:1)

引用OP

  

remotetype方法位于插件的核心,不需要包含在内。”

不完全。 remote是一种方法,但type不是......

registerEmail: {
    required: true,
    email:true,
    remote: "http://beta.mysite.com/Testmail.asp",
    type: "get" // <- this is not a method or rule
},

typeremote的一个选项,因此内的 ...

registerEmail: {
    required: true,
    email: true,
    remote: {
        url: "http://beta.mysite.com/Testmail.asp",
        type: "get"  // <- this is an option of 'remote'
    }
},

请参阅:http://jqueryvalidation.org/remote-method/

但是,由于type: "get"已经是默认,您应该可以将其全部删除......

registerEmail: {
    required: true,
    email: true,
    remote: "http://beta.mysite.com/Testmail.asp"
},