MVC2和jquery.validate.js

时间:2010-05-22 23:15:42

标签: jquery asp.net-mvc

我遇到了一些与jquery.validate.js混淆的问题

首先,什么是MicrosoftMvcJqueryValidation.js。它在网络上的片段中引用,但似乎已从RTM MVC2消失,现在处于未来。我需要吗?

我问的原因是我正在尝试将验证器与MVC一起使用,但我无法让它工作。我将我的JS定义为:

$(document).ready(function () {
     $("#myForm").validate({
                rules: {
                f_fullname: { required: true },
                f_email: { required: true, email: true },
                f_email_c: { equalTo: "#f_email" },
                f_password: { required: true, minlength: 6 },
                f_password_c: { equalTo: "#f_password" }
            },
            messages: {
                f_fullname: { required: "* required" },
                f_email: { required: "* required", email: "* not a valid email address" },
                f_email_c: { equalTo: "* does not match the other email" },
                f_password: { required: "* required", minlength: "password must be at least 6 characters long" },
                f_password_c: { equalTo: "* does not match the other email" }
            }
        });

});

和我在视图上的表单:

     <% using (Html.BeginForm("CreateNew", "Account", FormMethod.Post, new { id = "myForm" }))
        { %>
    <fieldset>
           <label for="f_fullname">name:</label><input  id="f_fullname"/>
           <label for="f_email"><input  id="f_email"/>
          ...etc...
          <input type="submit" value="Create" id="f_submit"/>
     </fieldset>
   <% } %>

并且在.ready()上调用验证方法,在firebug中没有错误。但是当我提交表单时,没有任何内容得到验证,表单也会被提交。如果我创建了一个submitHandler(),它会被调用,但插件不会检测到任何验证错误(.valid()== true)

我错过了什么?

1 个答案:

答案 0 :(得分:2)

MVC / jQuery验证粘贴文件位于源代码的MVCFutures部分。您可以在CodePlex获取代码。除非您计划在模型中使用DataAnnotations属性,否则不应该使用它。您遇到的问题可能是由于您的输入和ID都没有名称。我相信jQuery验证插件使用名称,而不是id来匹配规则。