我遇到了一些与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)
我错过了什么?
答案 0 :(得分:2)
MVC / jQuery验证粘贴文件位于源代码的MVCFutures部分。您可以在CodePlex获取代码。除非您计划在模型中使用DataAnnotations属性,否则不应该使用它。您遇到的问题可能是由于您的输入和ID都没有名称。我相信jQuery验证插件使用名称,而不是id来匹配规则。